:root{--bg:#14110c;--bg2:#1d1810;--panel:#241d13;--panel-edge:#3a2f1c;--felt:#1d3b2e;--felt2:#14291f;--gold:#d9b25a;--gold-bright:#f2d488;--green:#4fd18b;--red:#ff6b6b;--text:#f3ecdd;--muted:#a99a7c;--shadow:0 10px 30px #00000080}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(1200px 700px at 50% -15%, #2a2114, var(--bg));color:var(--text);-webkit-user-select:none;user-select:none;justify-content:center;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex}#app{flex-direction:column;gap:14px;width:100%;max-width:780px;padding:18px 16px 60px;display:flex}.topbar{border-bottom:1px solid var(--panel-edge);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;display:flex}h1{color:var(--gold-bright);text-shadow:0 1px #00000080;margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.6rem;font-style:italic}.room{color:var(--muted);align-items:center;gap:8px;font-size:.9rem;display:flex}.room-label{text-transform:uppercase;letter-spacing:1.5px;font-size:.65rem}#room-code{color:var(--gold-bright);letter-spacing:3px;background:#00000059;border-radius:6px;padding:3px 9px;font-size:1rem}button{font:inherit;color:var(--text);cursor:pointer;background:#d9b25a1f;border:1px solid #d9b25a66;border-radius:8px;padding:7px 13px;transition:background .15s,transform 50ms}button:hover:not(:disabled){background:#d9b25a3d}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:linear-gradient(180deg, var(--gold), #b98e34);border-color:var(--gold-bright);color:#201704;font-weight:700}button.danger{background:#ff6b6b1f;border-color:#ff6b6b80}.status{text-align:center;min-height:1.3em;color:var(--gold-bright);margin:0;font-size:1.1rem;font-weight:600}.panel{background:linear-gradient(180deg, var(--panel), var(--bg2));border:1px solid var(--panel-edge);box-shadow:var(--shadow);border-radius:14px;padding:16px}.panel h2{color:var(--gold);margin:0 0 10px;font-family:Georgia,serif;font-size:1.05rem}.hint{color:var(--muted);margin:6px 0 0;font-size:.85rem}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stage{aspect-ratio:7/5;width:100%;margin:4px auto 0;position:relative}.felt{background:radial-gradient(120% 120% at 50% 30%, var(--felt), var(--felt2));border:3px solid #d9b25a8c;border-radius:50%;position:absolute;inset:7% 6%;box-shadow:inset 0 0 60px #0000008c,0 14px 40px #00000080,0 0 0 10px #00000040}.pod{z-index:3;text-align:center;width:108px;position:absolute;transform:translate(-50%,-50%)}.nameplate{border:1px solid var(--panel-edge);background:linear-gradient(#2c2416,#1c1710);border-radius:10px;padding:6px 8px 7px;box-shadow:0 6px 16px #00000073}.pod.turn .nameplate{border-color:var(--gold-bright);box-shadow:0 0 0 2px var(--gold-bright), 0 0 18px #f2d48880}.pod.highbid .nameplate{border-color:var(--gold)}.pod.me .pn{color:var(--gold-bright)}.pn{white-space:nowrap;justify-content:center;align-items:center;gap:5px;font-size:.82rem;font-weight:700;display:flex}.pc{color:var(--green);margin:1px 0 3px;font-size:1.05rem;font-weight:800}.handfan{justify-content:center;align-items:center;min-height:26px;display:flex}.handfan .cardback{filter:drop-shadow(0 2px 2px #00000080);margin-left:-9px}.handfan .cardback:first-child{margin-left:0}.handmore{color:var(--muted);margin-left:4px;font-size:.7rem}.relic-ring{z-index:2;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;width:132px;display:flex;position:absolute;transform:translate(-50%,-50%)}.relic{filter:drop-shadow(0 3px 5px #00000080);place-items:center;width:46px;height:46px;display:grid;position:relative}.relic .relic-art{display:block}.relic .rv{color:#10231a;background:var(--green);border-radius:6px;padding:0 4px;font-size:.6rem;font-weight:800;position:absolute;bottom:-6px;right:-4px;box-shadow:0 1px 3px #00000080}.relic .rv.unk{color:var(--muted);background:#3a2f1c}.relic.targetable{cursor:pointer;border-color:var(--gold-bright);box-shadow:0 0 0 2px var(--gold-bright)}.relic.targetable:hover{transform:scale(1.08)}.pod.targetable .nameplate{cursor:pointer;border-color:var(--gold-bright);box-shadow:0 0 0 2px var(--gold-bright)}.pod.targetable:hover .nameplate{transform:scale(1.06)}.pod.capped .nameplate{border-color:#b4522f}.capped-tag{color:#ff8f6b;white-space:nowrap;font-size:.62rem}.center{z-index:1;text-align:center;width:60%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crest{color:#d9b25a66;font-size:2.2rem}.cd-ring{--frac:1;background:conic-gradient(var(--gold-bright) calc(var(--frac) * 360deg), #0006 0);border-radius:50%;width:108px;height:108px;margin:0 auto 6px;padding:8px;box-shadow:0 6px 18px #00000080}.lot{background:radial-gradient(circle at 50% 35%, #26463a, var(--felt2));border:1px solid #0006;border-radius:50%;place-items:center;width:100%;height:100%;display:grid}.lot-name{color:var(--gold-bright);font-family:Georgia,serif;font-size:1.05rem}.lot-sub{color:var(--muted);font-size:.72rem}.bid-amount{margin-top:4px;font-size:1.9rem;font-weight:800}.bid-who{color:var(--muted);min-height:1em;font-size:.8rem}.intro{z-index:6;pointer-events:none;animation:introVeil var(--dur) linear both;animation-delay:calc(0s - var(--e));background:radial-gradient(62% 62%,#060402d9,#0604021a);position:absolute;inset:0;overflow:hidden}.intro-title,.intro-card,.stage.revealing .center{animation-duration:var(--dur);animation-delay:calc(0s - var(--e));animation-timing-function:cubic-bezier(.22,.9,.24,1);animation-fill-mode:both}.stage.revealing .center{animation-name:introCenter;animation-timing-function:ease-in}.intro-title{text-align:center;color:var(--gold-bright);text-shadow:0 2px 12px #000c;font-family:Georgia,Times New Roman,serif;font-size:1.5rem;font-style:italic;animation-name:introTitle;position:absolute;top:13%;left:0;right:0}.intro-stage{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.intro-card{text-align:center;background:radial-gradient(80% 70% at 50% 30%,#2b4b3d,#0e1c16);border:1px solid #d9b25a80;border-radius:18px;padding:12px 20px 14px;animation-name:introCard;box-shadow:0 22px 40px #000000b3,inset 0 0 40px #00000073,0 0 34px #d9b25a2e}.intro-card .relic-art{margin:0 auto;display:block}.intro-name{color:var(--gold-bright);white-space:nowrap;margin-top:2px;font-family:Georgia,serif;font-size:1.15rem}.intro-range{color:var(--gold-bright);white-space:nowrap;background:#0000008c;border:1px solid #d9b25a8c;border-radius:999px;margin-top:4px;padding:2px 10px;font-size:.82rem;font-weight:700;display:inline-block}@keyframes introVeil{0%{opacity:0}8%{opacity:1}86%{opacity:1}to{opacity:0}}@keyframes introTitle{0%{opacity:0;letter-spacing:.3em;transform:translateY(10px)}9%{opacity:1;letter-spacing:.04em;transform:translateY(0)}34%{opacity:1;letter-spacing:.04em;transform:translateY(0)}46%{opacity:0;transform:translateY(-14px)}to{opacity:0;transform:translateY(-14px)}}@keyframes introCard{0%{opacity:0;transform:translate(230%)rotate(8deg)}20%{opacity:0;transform:translate(230%)rotate(8deg)}48%{opacity:1;transform:translate(0)rotate(0)scale(1)}54%{transform:translate(0)rotate(0)scale(1.05)}62%{transform:translate(0)rotate(0)scale(1)}80%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-34px)scale(.5)}}@keyframes introCenter{0%{opacity:0}82%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.intro-title,.intro-card{animation-name:introFadeOnly}@keyframes introFadeOnly{0%{opacity:0}10%{opacity:1}88%{opacity:1}to{opacity:0}}}.strip{background:linear-gradient(180deg, var(--panel), var(--bg2));border:1px solid var(--panel-edge);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.strip-head{color:var(--gold);font-size:.9rem}.strip-section{flex-direction:column;gap:6px;display:flex}.bid-buttons{justify-content:center;gap:10px;display:flex}.bid-buttons button{min-width:92px;padding:12px 18px;font-size:1.15rem;font-weight:700}.cards{flex-wrap:wrap;gap:10px;display:flex}.card{text-align:center;border:1px solid var(--panel-edge);cursor:pointer;background:linear-gradient(#2c2416,#211a10);border-radius:10px;width:92px;padding:9px 7px;transition:transform 80ms,box-shadow .15s,border-color .15s}.card:hover{transform:translateY(-3px);box-shadow:0 8px 18px #00000073}.card.selected{border-color:var(--gold-bright);box-shadow:0 0 0 2px var(--gold-bright)}.card.disabled{opacity:.5;cursor:default;box-shadow:none;transform:none}.card .ico{place-items:center;height:32px;display:grid}.card .ico .cardglyph{filter:drop-shadow(0 1px 2px #0009);display:block}.card .nm{color:var(--gold-bright);margin-top:3px;font-size:.76rem;font-weight:700}.card .dsc{color:var(--muted);margin-top:2px;font-size:.64rem;line-height:1.2}.card.heavy{background:linear-gradient(#3a2a14,#251a0e);border-color:#6b4f22}.card .cost{letter-spacing:.06em;text-transform:uppercase;color:var(--gold);opacity:.85;margin-top:4px;font-size:.56rem;display:block}.card.disabled .cost{opacity:.5}.slots{float:right;color:var(--muted);font-size:.76rem}.slots .pip{border:1px solid var(--gold);opacity:.4;vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:3px;display:inline-block}.slots .pip.on{background:var(--gold-bright);border-color:var(--gold-bright);opacity:1}.myrelics{flex-wrap:wrap;gap:10px;display:flex}.myrelic{border:1px solid var(--panel-edge);background:#00000038;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;display:flex}.myrelic .anm{font-family:Georgia,serif;font-size:.9rem}.myrelic .aval{color:var(--green);font-size:.95rem;font-weight:800}.amini{gap:6px;margin-left:4px;display:flex}.amini button{padding:4px 9px;font-size:.72rem}.steal-prompt{border-color:var(--red);text-align:center;box-shadow:0 0 0 2px #ff6b6b66}.steal-msg{font-size:1.05rem}#view>.panel+.panel{margin-top:14px}.rules dl{gap:10px;margin:0;display:grid}.rules dt{color:var(--gold-bright);font-size:.92rem;font-weight:700}.rules dd{color:var(--muted);margin:3px 0 0;font-size:.86rem;line-height:1.45}.rules dd strong{color:var(--text);font-weight:700}.rules dd em{color:var(--text);font-style:italic}.standings{margin:0;padding:0;list-style:none}.standings li{background:#00000040;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:9px 12px;display:flex}.standings li.win{border:1px solid var(--gold);background:linear-gradient(90deg,#d9b25a47,#d9b25a0f)}.standings .net{color:var(--green);font-weight:800}.logbox{color:var(--muted);font-size:.85rem}.logbox summary{cursor:pointer;color:var(--gold)}#log{max-height:150px;margin:0;padding:10px 0 0;list-style:none;overflow-y:auto}#log li{border-bottom:1px solid #ffffff0a;padding:3px 0}#players:empty{display:none}.dot{background:var(--muted);border-radius:50%;width:8px;height:8px;display:inline-block}.dot.on{background:var(--green)}.conn-dot{background:var(--muted);border-radius:50%;width:10px;height:10px}.conn-dot.connecting{background:var(--gold)}.conn-dot.connected{background:var(--green)}.conn-dot.disconnected{background:var(--red)}.fx{pointer-events:none;z-index:40;position:fixed;inset:0;overflow:hidden}.fx-item{white-space:nowrap;text-shadow:0 2px 6px #000c;will-change:transform, opacity;font-size:1.5rem;font-weight:700;line-height:1;position:absolute;transform:translate(-50%,-50%)}.fx-item .relic-art{filter:drop-shadow(0 4px 10px #0009);display:block}.fx-item .cardface{filter:drop-shadow(0 6px 14px #000000b3);display:block}.fx-pop{animation:fxPop var(--ms) ease-out both}.fx-fly{animation:fxFly var(--ms) cubic-bezier(.34, 0, .24, 1) both}@keyframes fxPop{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}18%{opacity:1;transform:translate(-50%,-50%)scale(1.14)}32%{opacity:1;transform:translate(-50%,-50%)scale(1)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-160%)scale(1)}}@keyframes fxFly{0%{opacity:0;transform:translate(-50%,-50%)scale(.55)rotate(-8deg)}16%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}80%{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1);opacity:1}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.82);opacity:0}}.fx-settle{animation:fxSettle var(--ms) cubic-bezier(.2, .9, .2, 1) both}@keyframes fxSettle{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)rotate(-10deg)}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1) rotate(0deg);opacity:1}}.fx-menace{animation:fxSettle var(--ms) cubic-bezier(.2, 1.1, .25, 1) both, fxMenace 1.9s .7s ease-in-out infinite}@keyframes fxMenace{0%,to{filter:drop-shadow(0 6px 14px #000000b3)}50%{filter:drop-shadow(0 0 13px #e26048f2)}}.fx-knocked{animation:fxKnocked var(--ms) cubic-bezier(.3, -.4, .7, 1) both}@keyframes fxKnocked{0%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.7) rotate(74deg);opacity:0}}.fx-loot{animation:fxFly var(--ms) cubic-bezier(.3, 0, .2, 1) both}.fx-dissolve{animation:.3s ease-in both fxDissolve}.fx-dissolve-fly{animation:fxFly var(--ms) ease-in both;opacity:.85}@keyframes fxDissolve{to{opacity:0;transform:translate(-50%,-50%)scale(.7)}}.fx-money{letter-spacing:.01em;font-size:1.25rem;font-weight:800}.fx-money.gain{color:#86e39b}.fx-money.loss{color:#ff9c85}.fx-value{color:var(--gold-bright);animation:fxSlam var(--ms) ease-out both;font-size:1.45rem}@keyframes fxSlam{0%{opacity:0;transform:translate(-50%,-50%)scale(2.4)}14%{opacity:1;transform:translate(-50%,-50%)scale(1)}76%{opacity:1}to{opacity:0;transform:translate(-50%,-120%)scale(1)}}.fx-ring .ring{border:3px solid;border-radius:50%;width:46px;height:46px;display:block}.fx-ring{animation:fxRing var(--ms) ease-out both}.fx-ring .ring.cyan{color:#7fd4ff}.fx-ring .ring.red{color:#ff7a5c}@keyframes fxRing{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}25%{opacity:.95}to{opacity:0;transform:translate(-50%,-50%)scale(2.5)}}.fx-glow .glow{background:radial-gradient(circle,#7ef096d9 0%,#7ef09640 42%,#0000 70%);border-radius:50%;width:74px;height:74px;display:block}.fx-glow{animation:fxGlow var(--ms) ease-out both}@keyframes fxGlow{0%{opacity:0;transform:translate(-50%,-50%)scale(.35)}30%{opacity:1;transform:translate(-50%,-50%)scale(1.15)}to{opacity:0;transform:translate(-50%,-50%)scale(1.5)}}.fx-spark .spark{background:#d8ffe0;border-radius:50%;width:6px;height:6px;display:block;box-shadow:0 0 7px 2px #8cffaae6}.fx-spark{animation:fxSpark var(--ms) var(--delay,0s) ease-out both}@keyframes fxSpark{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)}22%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.15);opacity:0}}.relic.restored .relic-art,.myrelic.restored .relic-art{filter:drop-shadow(0 0 6px #86e39be6)}.relic.restored:after{content:"";background:radial-gradient(circle,#eaffe9 0%,#86e39b 55%,#0000 72%);border-radius:50%;width:9px;height:9px;animation:2.4s ease-in-out infinite restoredPulse;position:absolute;top:-2px;right:-2px}@keyframes restoredPulse{0%,to{opacity:.55;transform:scale(.85)}50%{opacity:1;transform:scale(1.2)}}.relic.targeted{z-index:5;animation:1.15s ease-in-out infinite targetedPulse;transform:scale(1.32)}.relic.targeted .relic-art{filter:drop-shadow(0 0 9px #e26048f2)}@keyframes targetedPulse{0%,to{transform:scale(1.28)}50%{transform:scale(1.4)}}@media (prefers-reduced-motion:reduce){.fx-fly,.fx-loot,.fx-knocked,.fx-dissolve-fly{animation-name:fxPop}.fx-menace{animation:fxSettle var(--ms) ease-out both}.relic.targeted{animation:none;transform:scale(1.3)}.relic.restored:after{opacity:.9;animation:none}}.toast{border:1px solid var(--panel-edge);opacity:0;pointer-events:none;background:#000000d9;border-radius:8px;padding:9px 16px;font-size:.9rem;transition:opacity .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast.show{opacity:1}@media (max-width:560px){.stage{aspect-ratio:4/5}.felt{inset:4%}.pod{width:84px}.pn{font-size:.72rem}.pc{font-size:.9rem}.relic-ring{width:96px}.relic,.relic .relic-art{width:38px;height:38px}.cd-ring{width:88px;height:88px}}
