:root{--bg: #170d12;--felt: #26233f;--felt-hi: #3a3560;--gold: #d4af37;--gold-hi: #f0cf66;--cream: #f9f2e7;--ink: #1a1a1a;--red: #c0392b;--rocoto: #a83240;--muted: #b3a4ab}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:Segoe UI,Tahoma,system-ui,sans-serif;background:radial-gradient(1200px 700px at 50% -10%,#4a1f2c 0%,var(--bg) 62%);color:var(--cream);overscroll-behavior:none}.app{min-height:100%;display:flex;flex-direction:column}.btn{border:1px solid #ffffff22;background:#ffffff10;color:var(--cream);padding:10px 16px;border-radius:12px;font-size:15px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:linear-gradient(180deg,var(--felt-hi),var(--felt));border-color:#fff3}.btn.gold{background:linear-gradient(180deg,var(--gold-hi),var(--gold));color:#241d05;font-weight:700;border:none}.btn.danger{background:linear-gradient(180deg,#e05a4e,var(--red));color:#fff5ef;font-weight:800;border:none}.btn.green{background:linear-gradient(180deg,#58b877,#2e7d4f);color:#f2fff6;font-weight:800;border:none}.btn.ghost{background:transparent}.btn.sm{padding:6px 10px;font-size:13px;border-radius:9px}.btn.xl{width:100%;padding:16px;font-size:19px;border-radius:16px}.btn.link{background:none;border:none;color:var(--muted);padding:6px}.home{max-width:560px;margin:0 auto;padding:20px 16px 40px;display:flex;flex-direction:column;gap:18px}.hero{text-align:center;padding:26px 0 8px}.hero h1{font-size:44px;margin:0;color:var(--gold-hi);letter-spacing:1px}.tagline{color:var(--muted);margin:8px 0 14px}.meinfo{color:var(--gold-hi)}.vip-badge{background:linear-gradient(180deg,var(--gold-hi),var(--gold));color:#241d05;border-radius:8px;padding:1px 7px;font-size:12px;margin-inline-start:6px}.tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.tiercard{border:1px solid #ffffff22;background:#ffffff0a;color:var(--cream);border-radius:14px;padding:14px 6px;cursor:pointer;display:flex;flex-direction:column;gap:4px;align-items:center}.tiercard.sel{border-color:var(--gold);background:#d4af3722}.tiercard.locked{opacity:.5}.tiercard small{font-size:10px;color:var(--muted)}.joinrow{display:flex;gap:8px}.joinrow input{flex:1;background:#ffffff10;border:1px solid #ffffff22;color:var(--cream);border-radius:12px;padding:12px;font-size:18px;letter-spacing:6px;text-align:center;text-transform:uppercase}.actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.legal{text-align:center;color:var(--muted);font-size:12px;margin-top:12px}.legal a{color:var(--muted)}.center{text-align:center}.ok{color:#7ee2a0}.err{color:#ff9c8f}.game{display:flex;flex-direction:column;height:100dvh;padding:8px;gap:8px;overflow-y:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.scores{flex:1;display:flex;justify-content:center;gap:12px;align-items:baseline}.target{color:var(--muted);font-size:12px}.contract{color:var(--gold-hi);font-weight:700;font-size:13px}.table{position:relative;flex:none;border-radius:26px;min-height:140px;background:repeating-linear-gradient(45deg,#ffffff06 0 14px,transparent 14px 28px),radial-gradient(closest-side at 50% 42%,var(--felt-hi),var(--felt) 78%,#1b1830);border:3px solid #d4af3755;box-shadow:inset 0 0 60px #0007}.scorerow{position:absolute;top:8px;inset-inline:8px;display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.scorecard{background:#00000042;border:1px solid #ffffff1f;border-radius:12px;padding:5px 10px;display:flex;flex-direction:column;align-items:center;min-width:74px}.scorecard.empty{background:transparent;border:none;min-width:0;flex:1}.scorecard b{font-size:17px;color:var(--cream);letter-spacing:2px}.scorecard small{font-size:9px;color:var(--muted);max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scorecard.turn{border-color:var(--gold-hi);box-shadow:0 0 12px #f0cf6666}.scorecard.turn b{color:var(--gold-hi)}.scorecard.me{background:#d4af3722}.scorecard.out{opacity:.45;filter:grayscale(.7)}.pname{font-size:11px;color:var(--cream);max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.centerinfo{position:absolute;top:52%;inset-inline-start:50%;transform:translate(-50%,-50%);text-align:center;width:100%}[dir=rtl] .centerinfo{transform:translate(50%,-50%)}.turnbox{display:flex;flex-direction:column;gap:4px;align-items:center}.turnmark{color:var(--gold-hi);font-weight:700;animation:pulse 1s infinite;margin-top:4px}@keyframes pulse{50%{opacity:.55}}.bidbox{display:flex;align-items:center;gap:8px;background:#0005;padding:6px 16px;border-radius:16px}.bidbox.dim{color:var(--muted);font-size:13px}.bidqty{font-size:30px;font-weight:900;color:var(--gold-hi);line-height:1}.bidx{color:var(--muted);font-size:18px}.bidname{color:var(--cream);font-size:13px;font-weight:600}.lastline{color:var(--muted);font-size:12px;background:#00000042;border-radius:12px;padding:4px 12px;margin-top:4px}.lastline b{color:var(--gold-hi)}.diceline{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;min-height:54px;align-items:center}.pool{min-height:60px}.dieface{width:52px;height:52px;border-radius:12px;padding:7px;flex:none;background:linear-gradient(160deg,#fffdf6,#e8ddc4);border:1px solid #00000033;box-shadow:0 3px 8px #0006;display:grid;place-items:center;cursor:default}.dieface.clickable{cursor:pointer}.dieface.free{opacity:.96}.dieface.sel{outline:3px solid var(--gold-hi);box-shadow:0 0 14px #f0cf66aa;transform:translateY(-4px)}.dieface.held{background:linear-gradient(160deg,#f3e2b0,#dfc27a);outline:2px solid #f0cf6666}.dieface.dim{opacity:.42}.pipgrid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%}.pip{border-radius:50%}.pip.on{background:radial-gradient(circle at 35% 30%,#4a3f36,var(--ink))}.actionrow{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;min-height:48px}.hint{color:var(--muted);font-size:12px}.builder{flex-direction:column;gap:8px}.bidbuild{display:flex;flex-direction:column;gap:8px;align-items:center}.faces{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.facebtn{padding:3px;border-radius:10px}.facebtn .dieface{width:38px;height:38px;padding:5px;border-radius:9px}.qtyrow{display:flex;gap:8px;align-items:center}.qtyval{font-size:22px;font-weight:900;color:var(--gold-hi);min-width:40px;text-align:center}.challengewrap{display:flex;gap:10px}.challengewrap .btn{min-width:118px;padding:12px 14px;font-size:16px;letter-spacing:.5px}.revealgrid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:stretch;background:#0003;border-radius:16px;padding:10px}.revealcard{background:#00000042;border:1px solid #ffffff1f;border-radius:12px;padding:6px 10px;display:flex;flex-direction:column;gap:4px;align-items:center}.revealcard.loser{border-color:#e05a4e;box-shadow:0 0 10px #e05a4e66}.revealcard.gainer{border-color:#58b877;box-shadow:0 0 10px #58b87766}.revealcard.empty{opacity:.35}.revealcard .diceline{min-height:0}.revealcard .dieface{width:30px;height:30px;padding:4px;border-radius:7px}.chatbar{display:flex;align-items:center;gap:8px;position:relative}.chips-scroll{flex:1;display:flex;gap:8px;overflow:hidden;white-space:nowrap;color:var(--muted);font-size:12px}.chatmsg{background:#ffffff0d;padding:3px 8px;border-radius:10px}.chatpanel{position:absolute;bottom:44px;inset-inline-start:0;z-index:15;background:#2c1a2b;border:1px solid #ffffff22;border-radius:14px;padding:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:min(320px,90vw)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000a;display:grid;place-items:center;z-index:20}.result{background:linear-gradient(180deg,#4a1f2c,#2c1a2b);border:2px solid var(--gold);border-radius:20px;padding:22px 28px;text-align:center;min-width:min(320px,86vw)}.result h1,.result h2{margin:0 0 8px;color:var(--gold-hi)}.result .raw{color:var(--muted);font-size:13px;margin:4px 0}.clickable{cursor:pointer}.nickrow{display:flex;gap:8px;margin-top:10px}.nickrow input{flex:1;min-width:0;background:#ffffff10;border:1px solid #ffffff2a;color:var(--cream, #f5efe2);border-radius:10px;padding:10px 12px;font-size:15px}.renamebox{display:flex;gap:6px;align-items:center}.renamebox input{width:110px;background:#ffffff10;border:1px solid #ffffff2a;color:var(--cream, #f5efe2);border-radius:8px;padding:6px 8px;font-size:14px}.unlocks{display:flex;flex-direction:column;gap:6px;align-items:center;margin-top:8px;font-size:13px}.unlock-badge{background:#ffffff0f;border-radius:999px;padding:3px 12px}.unlock-badge.dim{color:var(--muted, #b9b0a0)}.xpbar{position:relative;display:block;width:min(260px,70vw);height:8px;background:#ffffff14;border-radius:999px}.xpbar i{position:absolute;inset-block:0;inset-inline-start:0;background:var(--gold-hi, #e8c15a);border-radius:999px}.xpbar small{position:absolute;inset-inline-start:0;top:12px;width:100%;text-align:center;color:var(--muted, #b9b0a0);white-space:nowrap}
