*{box-sizing:border-box}html,body,#root{background:var(--sky-deep);height:100%;font-family:var(--body);color:var(--paper);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;margin:0;overflow:hidden}.viewport{background:radial-gradient(ellipse at center, var(--sky-glow) 0%, var(--sky-deep) 75%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.stage{transform-origin:50%;border-radius:0;flex:none;position:relative;overflow:hidden}.canvas-host{position:absolute;inset:0}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.btn{font-family:var(--display);letter-spacing:.5px;color:#fff;text-shadow:0 2px 0 var(--ink), -1.5px 0 0 var(--ink), 1.5px 0 0 var(--ink), 0 -1.5px 0 var(--ink);border:var(--outline) solid var(--ink);cursor:pointer;box-shadow:inset 0 -6px 0 #00000047, inset 0 3px 0 #ffffff73, 0 4px 0 var(--ink);border-radius:14px;padding:10px 14px 12px;font-size:20px;transition:transform 90ms ease-out,box-shadow 90ms ease-out;position:relative}.btn:after{content:"";pointer-events:none;background:#ffffff59;border-radius:6px;height:7px;position:absolute;top:4px;left:8px;right:8px}.btn:active:not(:disabled){box-shadow:inset 0 -3px 0 #00000047, inset 0 3px 0 #fff6, 0 1px 0 var(--ink);transform:translateY(3px)scale(.97)}.btn:disabled{filter:grayscale(.85)brightness(.8);cursor:default}.btn-gold{background:linear-gradient(var(--gold-hi), var(--gold) 55%, var(--gold-lo))}.btn-blue{background:linear-gradient(var(--team-hi), var(--team) 55%, var(--team-lo))}.btn-red{background:linear-gradient(var(--enemy-hi), var(--enemy) 55%, var(--enemy-lo))}.btn-stone{background:linear-gradient(var(--stone-hi), var(--stone) 55%, var(--stone-lo))}.btn.big{flex-direction:column;align-items:center;width:270px;padding:12px 16px 16px;font-size:26px;line-height:1.05;display:flex}.btn.big small{font-family:var(--body);text-shadow:none;color:#1a1430bf;margin-top:3px;font-size:13px;font-weight:800}.btn-blue.big small,.btn-stone.big small{color:#ffffffd9}.btn.wide{width:100%;margin-top:10px}.chip-btn{border:var(--outline) solid var(--ink);background:linear-gradient(var(--chip-hi), var(--chip-lo));color:#fff;width:40px;height:40px;font-size:17px;font-family:var(--display);box-shadow:inset 0 -4px 0 #0000004d, 0 3px 0 var(--ink);cursor:pointer;border-radius:12px}.topbar{pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;top:10px;left:10px;right:10px}.topbar>*{pointer-events:auto}.target-chip{font-family:var(--display);border:3px solid var(--ink);background:var(--relic-dark);box-shadow:0 3px 0 var(--ink);text-shadow:0 2px 0 var(--ink);border-radius:12px;padding:6px 12px;font-size:15px}.target-chip b{color:var(--gold);font-weight:400}.status{font-family:var(--display);border:3px solid var(--ink);white-space:nowrap;text-shadow:0 2px 0 var(--ink);pointer-events:none;background:#0e1638db;border-radius:12px;padding:6px 14px;font-size:16px;position:absolute;top:626px;left:50%;transform:translate(-50%)}.status.you{background:linear-gradient(var(--gold-hi), var(--gold-lo));color:var(--ink);text-shadow:none;animation:1.2s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-4px)}}.panel{border:var(--outline) solid var(--ink);background:linear-gradient(var(--panel-hi), var(--panel-lo));box-shadow:inset 0 3px 0 #ffffff2e, inset 0 -6px 0 #0000004d, 0 6px 0 var(--ink), 0 14px 30px #00000073;border-radius:18px;padding:8px 10px 10px;animation:.26s cubic-bezier(.34,1.56,.64,1) pop;position:absolute;top:452px;left:78px;right:14px}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.panel-title{font-family:var(--display);text-align:center;color:var(--gold);text-shadow:0 2px 0 var(--ink), -1.5px 0 0 var(--ink), 1.5px 0 0 var(--ink);margin-bottom:6px;font-size:21px}.panel-note{text-align:center;color:#fffc;margin-top:8px;font-size:13px;font-weight:800}.bid-grid{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.bid-grid .btn{border-radius:11px;padding:4px 0 7px;font-size:19px}.bid-grid .btn-stone{grid-column:span 5}.suit-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.btn-suit{background:linear-gradient(var(--paper-hi), var(--paper-shade2));text-shadow:none;flex-direction:column;align-items:center;padding:6px 8px 10px;display:flex}.btn-suit .suit-sym{font-family:var(--body);font-size:34px;font-weight:800;line-height:1}.btn-suit.red .suit-sym{color:var(--red)}.btn-suit.black .suit-sym{color:var(--black)}.btn-suit .suit-meta{font-family:var(--body);color:var(--ink);font-size:13px;font-weight:800}.modal-scrim{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080a1e8c;position:absolute;inset:0}.panel.result{padding:12px 14px 14px;top:230px;left:18px;right:18px}.result-banner{font-family:var(--display);text-align:center;border:var(--outline) solid var(--ink);width:250px;box-shadow:inset 0 -6px 0 #00000040, 0 4px 0 var(--ink);text-shadow:0 3px 0 var(--ink), -2px 0 0 var(--ink), 2px 0 0 var(--ink), 0 -2px 0 var(--ink);border-radius:16px;margin:-34px auto 8px;padding:4px 0 8px;font-size:40px}.result-banner.made{background:linear-gradient(var(--gold-hi), var(--gold-lo))}.result-banner.set{background:linear-gradient(var(--enemy-hi), var(--enemy-lo))}.result-line{text-align:center;font-size:16px;font-weight:800}.result-line b{font-family:var(--display);color:var(--gold);font-size:20px;font-weight:400}.result-scores{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.team{border:3px solid var(--ink);text-align:center;border-radius:14px;padding:6px 0 8px;box-shadow:inset 0 -5px #00000040}.team.us{background:linear-gradient(var(--team-hi), var(--team-lo))}.team.them{background:linear-gradient(var(--enemy-hi), var(--enemy-lo))}.team-label{font-family:var(--display);text-shadow:0 2px 0 var(--ink);font-size:16px}.team-delta{font-family:var(--display);color:var(--gold-light);text-shadow:0 2px 0 var(--ink);font-size:22px}.team-total{font-family:var(--display);text-shadow:0 3px 0 var(--ink), -1.5px 0 0 var(--ink), 1.5px 0 0 var(--ink);font-size:34px}.title-screen{background:linear-gradient(var(--sky-deep), var(--sky) 55%, var(--dusk))}.title-sky{background:radial-gradient(circle at 20% 15%,#ffc93c2e,#0000 35%),radial-gradient(circle at 80% 30%,#9b4dff40,#0000 40%);position:absolute;inset:0}.logo{text-align:center;width:100%;font-family:var(--display);line-height:.85;animation:.5s cubic-bezier(.34,1.56,.64,1) pop;position:absolute;top:92px;transform:rotate(-4deg)}.logo-top{color:var(--gold);text-shadow:0 6px 0 var(--ink), -4px 0 0 var(--ink), 4px 0 0 var(--ink), 0 -4px 0 var(--ink), 0 12px 18px #00000080;font-size:92px}.logo-bottom{color:#fff;text-shadow:0 5px 0 var(--ink), -3px 0 0 var(--ink), 3px 0 0 var(--ink), 0 -3px 0 var(--ink);font-size:64px}.title-cards{height:150px;position:absolute;top:300px;left:0;right:0}.tcard{border:4px solid var(--gold);background:linear-gradient(var(--paper-hi), var(--paper-lo));width:84px;height:120px;box-shadow:inset 0 -8px 0 #0000001a, 0 6px 0 var(--ink);font-family:var(--display);color:var(--red);border-radius:14px;justify-content:center;align-items:center;margin-left:-42px;font-size:40px;display:flex;position:absolute;left:50%}.tcard.t1{transform:translate(-70px)rotate(-14deg)}.tcard.t2{z-index:1;transform:translateY(-14px)}.tcard.t3{transform:translate(70px)rotate(14deg)}.menu{flex-direction:column;align-items:center;gap:14px;width:100%;display:flex;position:absolute;top:480px}.title-foot{text-align:center;color:#ffffffb3;width:100%;font-size:13px;font-weight:800;position:absolute;bottom:28px}.btn-relic{background:linear-gradient(var(--relic), var(--relic-dark))}.trick-bar{flex-direction:column;gap:6px;width:70px;display:flex;position:absolute;top:470px;left:4px}.trick-btn{border-radius:11px;flex-direction:column;align-items:center;padding:5px 4px 7px;font-size:12px;line-height:1.1;display:flex}.trick-btn small{font-family:var(--body);text-shadow:none;font-size:11px;font-weight:800}.tally-line{flex-direction:column;align-items:center;margin-top:6px;font-size:14px;font-weight:800;display:flex}.tally-line b{font-family:var(--display);color:var(--gold);font-size:17px;font-weight:400}
