:root{--sea-0:#082a45;--sea-1:#0f3f63;--sea-2:#1f6d98;--parch:#f7eed9;--parch-2:#efe1c0;--parch-edge:#d6bf92;--ink:#2b2118;--ink-2:#6f5d47;--red:#c53d27;--red-2:#9c2a19;--gold:#f2c43d;--gold-2:#d99a1c;--wood:#5b3a1f;--glass:#0920349e;--radius:16px;--shadow:0 10px 30px #03121e59, 0 2px 6px #03121e40;--safe-b:env(safe-area-inset-bottom,0px);color:var(--ink);font-synthesis:none;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:Nunito,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(120% 90% at 50% 30%, var(--sea-2) 0%, var(--sea-1) 45%, var(--sea-0) 100%) fixed;color:var(--ink);overscroll-behavior:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}h1,h2,h3{letter-spacing:.01em;margin:0;font-family:Cinzel,Georgia,serif}p{margin:0;line-height:1.5}.muted{color:var(--ink-2)}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);font-size:11px;font-weight:800}.gold-ico{color:var(--gold-2)}.parchment{background:var(--parch);border:1px solid var(--parch-edge);border-top:3px solid var(--red);box-shadow:var(--shadow);border-radius:0}.btn{min-height:44px;color:var(--ink);border:1px solid var(--parch-edge);white-space:nowrap;background:#fffaf0;border-radius:0;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:800;transition:transform .12s,box-shadow .12s,filter .15s,opacity .15s;display:inline-flex}.btn:not(:disabled):active{transform:translateY(1px)}.btn:not(:disabled):hover{filter:brightness(1.05)}.btn:disabled{opacity:.5}.btn.primary{background:var(--red);color:#fff;border-color:var(--red-2)}.btn.gold{background:var(--gold);border-color:var(--gold-2)}.btn.gold small{opacity:.7;font-weight:700}.btn.ghost-dark{box-shadow:none;background:0 0;border-color:#2b211840}.btn.wide{width:100%}.btn.big{border-radius:0;min-height:54px;font-size:17px}.btn.small{border-radius:0;min-height:34px;padding:0 12px;font-size:13px}.icon-btn{width:40px;height:40px;color:inherit;border-radius:0;place-items:center;transition:background .15s;display:grid}.icon-btn:hover{background:#ffffff1f}.seg{background:#5b3a1f1a;border-radius:0;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.seg button{min-height:38px;color:var(--ink-2);border-radius:0;font-size:14px;font-weight:800;transition:all .2s}.seg button.on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--red);background:#fffdf7}.field{gap:6px;display:grid}.field>span{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-size:12px;font-weight:800}.field input{border:1px solid var(--parch-edge);background:#fffdf7;border-radius:0;outline:none;width:100%;min-height:50px;padding:0 16px;font-size:17px;font-weight:700;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--gold-2);box-shadow:0 0 0 4px #f2c43d4d}.code-input{letter-spacing:.35em;text-align:center;font-family:Cinzel,serif;font-size:22px!important}.form{gap:14px;display:grid}.spin-island{perspective:1400px;pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.spin-island:after{content:"";background:radial-gradient(70% 60% at 50% 55%,#0000 0%,#061a2b8c 70%,#061a2bd9 100%);position:absolute;inset:0}.spin-island-inner{aspect-ratio:1;width:min(1250px,170vw);animation:160s linear infinite island-spin;position:absolute;top:58%;left:50%;transform:rotateX(56deg)rotate(0)}.spin-island-inner .board-svg{width:100%;height:100%;-webkit-mask-image:radial-gradient(circle,#000 52%,#0000 71%);mask-image:radial-gradient(circle,#000 52%,#0000 71%)}@keyframes island-spin{to{transform:rotateX(56deg)rotate(360deg)}}.landing,.center-screen,.lobby-screen{min-height:100dvh;padding:72px 18px calc(28px + var(--safe-b));isolation:isolate;align-content:center;place-items:center;gap:22px;display:grid;position:relative}.landing>:not(.spin-island),.center-screen>:not(.spin-island),.lobby-screen>:not(.spin-island){z-index:1;position:relative}.landing-rules{color:#fff;background:#ffffff1a;top:14px;right:14px;position:absolute!important}.landing-hero{text-align:center;color:#fff;justify-items:center;gap:10px;animation:.8s cubic-bezier(.2,.8,.2,1) both rise;display:grid}.landing-hero .hex-mark{filter:drop-shadow(0 6px 14px #0006);animation:5s ease-in-out infinite bob}.landing-hero h1{text-shadow:0 3px #00000040,0 10px 30px #00000073;font-size:clamp(38px,8vw,68px);font-weight:800;line-height:1}.landing-hero p{color:#ffffffd9;text-shadow:0 2px 10px #00000080;max-width:420px;font-size:17px;font-weight:600}.landing-card,.center-card{gap:16px;width:min(420px,100%);padding:22px;animation:.8s cubic-bezier(.2,.8,.2,1) .1s both rise;display:grid}.center-card h2{font-size:26px}.seat-picker{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.seat-picker button{border:1px solid var(--parch-edge);background:#fffdf7;border-radius:0;min-height:48px;font-family:Cinzel,serif;font-size:19px;font-weight:800;transition:all .18s}.seat-picker button.on{background:var(--red);border-color:var(--red-2);color:#fff}.landing-foot{color:#fff9;text-align:center;font-size:13px;font-weight:600}.loader{color:#fff;justify-items:center;gap:14px;font-weight:700;display:grid}.loader .hex-mark{animation:1.6s ease-in-out infinite spin-y}@keyframes spin-y{50%{transform:rotateY(180deg)scale(.9)}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}@keyframes bob{50%{transform:translateY(-6px)rotate(-3deg)}}.topbar{color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:linear-gradient(#061a2bd9,#061a2b99);border-bottom:1px solid #ffffff14;grid-area:top;align-items:center;gap:10px;height:52px;padding:0 8px 0 12px;display:flex;position:relative}.lobby-screen .topbar{position:fixed;top:0;left:0;right:0}.brand{color:#fff;align-items:center;gap:10px;display:flex}.brand-name{letter-spacing:.03em;font-family:Cinzel,serif;font-size:17px;font-weight:800}.room-chip{color:#fff;background:#ffffff1f;border:1px solid #ffffff29;border-radius:0;align-items:center;gap:8px;height:32px;padding:0 12px;font-weight:800;display:inline-flex}.room-code{letter-spacing:.16em;font-family:Cinzel,serif;font-size:14px}.topbar-right{gap:2px;margin-left:auto;display:flex}.lobby-card{text-align:center;gap:14px;width:min(460px,100%);padding:24px 20px 20px;animation:.7s cubic-bezier(.2,.8,.2,1) both rise;display:grid}.big-code{justify-content:center;gap:6px;display:flex}.big-code span{border:1px solid var(--parch-edge);background:#fffdf7;border-radius:0;place-items:center;width:46px;height:58px;font-family:Cinzel,serif;font-size:28px;font-weight:800;display:grid}.lobby-hint{color:var(--ink-2);font-size:13px;font-weight:600}.seat-grid{text-align:left;grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.seat{min-height:52px;color:var(--ink-2);border:1.5px dashed #6f5d4766;border-radius:0;align-items:center;gap:10px;padding:8px 10px;font-weight:700;animation:.5s both rise;display:flex}.seat.taken{border:1px solid var(--parch-edge);color:var(--ink);background:#fffdf7}.seat-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.seat em,.player-name em{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);background:#2b211814;border-radius:0;padding:2px 6px;font-size:10px;font-style:normal;font-weight:900}.seat-empty{border:1.5px dashed #6f5d4766;border-radius:0;place-items:center;width:36px;height:36px;display:grid}.waiting-host{min-height:54px;color:var(--ink-2);justify-content:center;align-items:center;gap:10px;font-weight:800;display:flex}.dots{gap:4px;display:inline-flex}.dots i{background:var(--red);border-radius:0;width:7px;height:7px;animation:1.2s infinite dot}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes dot{40%{opacity:.4;transform:translateY(-5px)}}.fine{color:var(--ink-2);font-size:12px;font-weight:700}.avatar{background:var(--c);color:var(--ink);border-radius:0;flex:none;place-items:center;font-family:Cinzel,serif;font-weight:800;display:grid;position:relative;box-shadow:inset 0 0 0 1px #0000004d}.avatar>span{color:var(--ink);line-height:1;transform:translateY(-1px)}.avatar.timed:after{content:"";height:3px;width:var(--p);background:var(--gold-2);transition:width .25s linear;position:absolute;bottom:-4px;left:0}.table-screen{grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:"top""side""board""dock";height:100dvh;display:grid;overflow:hidden}.side{z-index:5;grid-area:side;min-width:0}.activity{display:none}.board-area{grid-area:board;min-height:0;position:relative;overflow:hidden}.players{scrollbar-width:none;background:#061a2b73;gap:6px;margin:0;padding:8px 10px;list-style:none;display:flex;overflow-x:auto}.players::-webkit-scrollbar{display:none}.player{color:#fff;background:#ffffff1a;border:1.5px solid #0000;border-radius:0;flex:none;align-items:center;gap:6px;min-width:0;padding:4px 9px 4px 5px;transition:background .3s,border-color .3s,transform .3s;display:flex}.player.active{color:var(--ink);border-color:var(--c);background:#fffffff2;box-shadow:0 4px 14px #0000004d}.player .avatar{width:28px!important;height:28px!important;font-size:13px!important}.player-main{min-width:0;display:grid}.player-name{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;max-width:64px;font-size:13px;font-weight:800;display:block;overflow:hidden}.player-name em{display:none}.player-stats{color:var(--ink-2);gap:9px;font-size:12px;font-weight:800;display:none}.player-stats>span{align-items:center;gap:3px;display:inline-flex}.player-stats .award{color:#fff;background:var(--gold-2);border-radius:0;padding:0 4px}.mini-card{background:linear-gradient(160deg,#e6c98c,#b98d4c);border-radius:0;width:8px;height:11px;display:inline-block;box-shadow:0 0 0 1px #00000040}.vp{align-items:baseline;gap:2px;margin-left:auto;font-family:Cinzel,serif;display:flex}.vp b{font-size:17px;font-weight:800}.vp small{opacity:.7;font-size:9px;font-weight:800}.board-stage{touch-action:none;perspective:1600px;cursor:grab;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.board-stage:active{cursor:grabbing}.board-tilt{transform-origin:50% 60%;position:absolute;inset:0;transform:rotateX(14deg)translateY(-1%)}.board-pan{transform-origin:0 0;will-change:transform;position:absolute;inset:0}.board-svg{width:100%;height:100%;display:block;overflow:visible}.board-stage .board-svg{padding:52px 2px 4px}.board-svg .static,.board-svg .pieces,.board-svg .robber,.board-svg .token,.board-svg .hex-glow{pointer-events:none}.token-num{font-family:Cinzel,Georgia,serif;font-weight:800}.port-rate{fill:#fff4d8;font-family:Nunito,sans-serif;font-size:9px;font-weight:900}.port-any{fill:var(--ink);font-family:Cinzel,serif;font-size:16px;font-weight:800}.piece-in{transform-box:fill-box;transform-origin:50% 100%;animation:.55s cubic-bezier(.25,1.5,.5,1) both drop}@keyframes drop{0%{opacity:0;transform:translateY(-36px)scale(.6)}60%{opacity:1}}.road.ghost{opacity:.75;animation:1s ease-in-out infinite blink}.robber{transition:transform .8s cubic-bezier(.34,1.4,.5,1)}.robber-bob{animation:3.4s ease-in-out infinite bob-svg}@keyframes bob-svg{50%{transform:translateY(-2px)}}.hex-glow{fill:#ffea8c47;stroke:#ffe685;stroke-width:5px;stroke-linejoin:round;filter:drop-shadow(0 0 10px #ffd84a);animation:1.1s ease-in-out 3 alternate both glow}@keyframes glow{0%{opacity:.2}to{opacity:1}}.token.hot{animation:.7s cubic-bezier(.3,1.8,.5,1) both token-pop}@keyframes token-pop{0%{transform:scale(1)}40%{transform:scale(1.35)}}.hex-target{fill:#fff4be0f;stroke:#fff1b0;stroke-width:3px;stroke-dasharray:10 7;stroke-linejoin:round;cursor:pointer;outline:none;transition:fill .15s;animation:1s linear infinite march}.hex-target:hover,.hex-target:focus-visible{fill:#fff4be59;stroke-width:5px}@keyframes march{to{stroke-dashoffset:-34px}}.edge-target,.vertex-target{cursor:pointer;outline:none}.edge-glow{stroke:#fff6c2;stroke-width:7px;stroke-linecap:butt;stroke-dasharray:9 7;filter:drop-shadow(0 0 5px #ffdc5af2);animation:.9s linear infinite march}.edge-target:hover .edge-glow,.edge-target:focus-visible .edge-glow{stroke:#fff;stroke-width:10px;stroke-dasharray:none}.vertex-ring{fill:#fff6c259;stroke:#fff6c2;stroke-width:3px;transform-box:fill-box;transform-origin:50%;filter:drop-shadow(0 0 6px #ffdc5af2);animation:1.2s ease-in-out infinite ring}.vertex-dot{fill:#fff}.vertex-target:hover .vertex-ring,.vertex-target:focus-visible .vertex-ring{fill:#fffc;animation:none;transform:scale(1.35)}@keyframes ring{50%{opacity:.7;transform:scale(1.3)}}@keyframes blink{50%{opacity:.35}}.zoom-controls{z-index:4;gap:4px;display:grid;position:absolute;bottom:10px;left:10px}.zoom-controls button{background:var(--glass);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #ffffff26;border-radius:0;place-items:center;width:36px;height:36px;display:grid}.zoom-controls button:disabled{opacity:.35}.status{z-index:6;max-width:calc(100% - 120px);box-shadow:var(--shadow);background:#f7eed9f5;border:2px solid #0000;border-radius:0;align-items:center;gap:10px;padding:5px 6px;font-size:14px;font-weight:800;transition:border-color .3s,background .3s;animation:.4s both rise;display:flex;position:absolute;top:10px;left:50%;translate:-50%}.status .avatar{width:26px!important;height:26px!important}.status-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.status.mine{border-color:var(--gold-2)}.clock{background:var(--ink);color:#fff;font-variant-numeric:tabular-nums;border-radius:0;flex:none;place-items:center;min-width:34px;height:28px;padding:0 8px;font-size:13px;display:grid}.status.urgent .clock{background:var(--red);animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{transform:scale(1.12)}}.tool-bar{z-index:6;gap:6px;animation:.3s both rise;display:flex;position:absolute;top:56px;left:50%;translate:-50%}.tool-bar .btn{background:#f7eed9f5}.feed{z-index:5;pointer-events:none;gap:5px;max-width:min(300px,62%);display:grid;position:absolute;top:58px;left:10px}.feed-item{background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;border-radius:0;justify-self:start;padding:6px 12px;font-size:13px;font-weight:700;animation:4.2s cubic-bezier(.2,.8,.2,1) both feed}@keyframes feed{0%{opacity:0;transform:translate(-20px)}8%,85%{opacity:1;transform:none}to{opacity:0}}.roll-mini{z-index:5;background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);--d:24px;border-radius:0;gap:5px;padding:6px;display:flex;position:absolute;top:10px;right:10px}.roll-show{z-index:15;pointer-events:none;--d:clamp(56px, 12vw, 76px);place-content:center;justify-items:center;gap:8px;animation:2.3s both fade-out;display:grid;position:absolute;inset:0}.roll-show:before{content:"";background:radial-gradient(circle,#061a2b73,#0000 60%);position:absolute;inset:0}.roll-dice{gap:18px;display:flex}.roll-show .die{animation:1s cubic-bezier(.2,.75,.3,1) both toss}.roll-show .die+.die{animation-delay:60ms}@keyframes toss{0%{transform:translate(-40vw,30vh)rotateX(-540deg)rotateY(400deg)rotate(120deg)scale(.5)}65%{transform:translateY(-12px)rotate(-6deg)scale(1.08)}to{transform:none}}.roll-total{color:#fff;text-shadow:0 3px #0000004d,0 0 24px #f2c43de6;font-family:Cinzel,serif;font-size:52px;font-weight:800;animation:.5s cubic-bezier(.3,1.8,.5,1) .85s both total-pop;position:relative}.roll-total.seven{color:#ffd2c7;text-shadow:0 3px #0000004d,0 0 26px #e63c1ef2}@keyframes total-pop{0%{opacity:0;transform:scale(.3)}}@keyframes fade-out{0%,80%{opacity:1}to{opacity:0}}.your-turn{z-index:14;pointer-events:none;color:#fff;text-shadow:0 4px 0 var(--turn), 0 10px 40px #0009;place-items:center;font-family:Cinzel,serif;font-size:clamp(40px,9vw,76px);font-weight:800;animation:1.7s cubic-bezier(.2,.8,.2,1) both your-turn;display:grid;position:absolute;inset:0}@keyframes your-turn{0%{opacity:0;letter-spacing:-.1em;transform:scale(.6)}25%,70%{opacity:1;letter-spacing:.04em;transform:none}to{opacity:0;transform:scale(1.1)}}.die{width:var(--d,40px);height:var(--d,40px);perspective:500px;transform-style:preserve-3d}.die-cube{width:100%;height:100%;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.2,.85,.3,1);position:relative}.die-face{backface-visibility:hidden;background:linear-gradient(145deg,#fffef9,#e8dfca);border-radius:4%;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #0000001f,inset 0 -3px 6px #0000001f}.die.red .die-face{background:linear-gradient(145deg,#e8573c,#b3301c)}.f0{transform:translateZ(calc(var(--d,40px) / 2))}.f1{transform:rotateY(180deg) translateZ(calc(var(--d,40px) / 2))}.f2{transform:rotateY(90deg) translateZ(calc(var(--d,40px) / 2))}.f3{transform:rotateY(-90deg) translateZ(calc(var(--d,40px) / 2))}.f4{transform:rotateX(90deg) translateZ(calc(var(--d,40px) / 2))}.f5{transform:rotateX(-90deg) translateZ(calc(var(--d,40px) / 2))}.pip{background:radial-gradient(circle at 40% 35%,#4a3d30,#1a130c);border-radius:50%;width:18%;height:18%;position:absolute;translate:-50% -50%}.die.red .pip{background:radial-gradient(circle at 40% 35%,#fff,#f1e6cf)}.offers{z-index:7;gap:8px;width:min(330px,100% - 64px);display:grid;position:absolute;bottom:10px;right:10px}.offer{box-shadow:var(--shadow);background:#f7eed9f7;border-radius:0;grid-template-columns:1fr auto;align-items:center;gap:6px 10px;padding:10px 12px;animation:.45s cubic-bezier(.3,1.5,.5,1) both offer-in;display:grid}@keyframes offer-in{0%{opacity:0;transform:translateY(20px)scale(.9)}}.offer-who{grid-column:1/-1;align-items:center;gap:7px;font-size:13px;display:flex}.offer-deal{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.offer-deal .for{color:var(--ink-2);font-size:12px;font-weight:800}.bag-chips{flex-wrap:wrap;gap:3px;display:inline-flex}.bag-chip{border:1px solid var(--parch-edge);background:#fffdf7;border-radius:0;align-items:center;gap:2px;padding:2px 5px 2px 3px;font-size:13px;font-weight:900;display:inline-flex}.dock{z-index:10;padding:8px 8px calc(8px + var(--safe-b));background:#2a1d12;border-top:1px solid #b07a47;grid-area:dock;gap:8px;display:grid;position:relative}.hand{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;min-width:0;display:grid}.res-card{background:var(--rc,#e9dcc0);border:1px solid #0000004d;border-radius:0;align-content:center;justify-items:center;gap:1px;height:64px;transition:opacity .3s,filter .3s,transform .2s;display:grid;position:relative}.res-card b{color:var(--ink);font-family:Cinzel,serif;font-size:19px;font-weight:800;line-height:1;animation:.35s cubic-bezier(.3,1.8,.5,1) count}@keyframes count{0%{transform:scale(1.6)}}.res-card .res-icon{filter:drop-shadow(0 1px 1px #00000040)}.res-name{letter-spacing:.06em;text-transform:uppercase;color:#2b2118b3;font-size:9px;font-weight:900}.res-card.zero{filter:saturate(.25);opacity:.6}.res-card.gain{box-shadow:0 0 0 2px var(--gold);animation:.6s cubic-bezier(.3,1.6,.5,1) gain}.res-card.loss{animation:.4s shake}@keyframes gain{30%{transform:translateY(-10px)scale(1.08)}}@keyframes shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}.pop{color:#fff;pointer-events:none;border-radius:0;padding:1px 6px;font-size:13px;font-weight:900;animation:1.4s cubic-bezier(.2,.8,.2,1) both pop-up;position:absolute;top:-6px;right:-2px}.pop.up{background:#2f8f3e}.pop.down{background:var(--red)}@keyframes pop-up{0%{opacity:0;transform:translateY(8px)scale(.6)}20%{opacity:1;transform:translateY(-6px)scale(1.1)}80%{opacity:1;transform:translateY(-14px)}to{opacity:0;transform:translateY(-22px)}}.res-wood{--rc:#7fc07a}.res-brick{--rc:#ec9b72}.res-wool{--rc:#cfe79c}.res-grain{--rc:#f7da7c}.res-ore{--rc:#c3ccd6}.dev-stack{--rc:#d9bfe9;color:#4a2d63}.dev-stack:hover{transform:translateY(-2px)}.actions{gap:5px;min-width:0;min-height:56px;display:flex}.act{background:var(--parch);min-width:0;color:var(--ink);border:1px solid #3d2612;border-radius:0;flex:1 1 0;align-content:center;justify-items:center;gap:2px;padding:4px 2px;font-size:12px;font-weight:800;transition:transform .12s,box-shadow .12s,opacity .2s,background .2s;display:grid}.act:not(:disabled):active{transform:translateY(1px)}.act:disabled{opacity:.45}.act.on{background:var(--gold);box-shadow:inset 0 -3px 0 var(--ink)}.act.wide{flex-basis:100%;justify-content:center;align-items:center;gap:8px;font-size:15px;display:flex}.cost-chips{justify-content:center;display:flex}.cost-chips .res-icon+.res-icon{margin-left:-3px}.act .cost-chips .res-icon{width:12px;height:12px}.roll-btn{flex:3 1 0;min-height:56px;font-size:18px;animation:1.8s ease-in-out infinite breathe}@keyframes breathe{50%{box-shadow:0 0 0 4px #f2c43d8c}}.end-btn{white-space:normal;flex:1.4 1 0;min-height:56px;padding:0 8px;font-size:14px;line-height:1.1}.dock-wait{color:#ffffffd9;flex:1;place-items:center;font-weight:800;display:grid}.sheet-back{z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#04121e73;align-items:end;animation:.2s both fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.sheet{background:linear-gradient(180deg, var(--parch), var(--parch-2));max-height:88dvh;padding-bottom:var(--safe-b);border-radius:0;flex-direction:column;animation:.38s cubic-bezier(.2,.9,.3,1) both sheet-up;display:flex;box-shadow:0 -10px 40px #00000059}@keyframes sheet-up{0%{transform:translateY(100%)}}.sheet-grip{background:#2b211833;border-radius:0;width:44px;height:5px;margin:8px auto 0;display:none!important}.sheet-head{align-items:center;gap:10px;padding:8px 12px 6px 18px;display:flex}.sheet-head h2{flex:1;font-size:20px}.sheet-head .icon-btn:hover{background:#2b211814}.sheet-body{align-content:start;gap:12px;padding:6px 16px 18px;display:grid;overflow-y:auto}.sheet-body h3{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:-4px;font-family:Nunito,sans-serif;font-size:12px;font-weight:900}.sheet-lead{color:var(--ink-2);font-weight:600}.empty-note{text-align:center;color:var(--ink-2);padding:10px 0;font-weight:700}.bag-picker{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.pick-tile{position:relative}.pick-add{background:var(--rc);border:1px solid #00000040;border-radius:0;align-content:center;justify-items:center;gap:2px;width:100%;min-height:74px;transition:transform .12s,box-shadow .15s,opacity .15s;display:grid;position:relative}.pick-add:not(:disabled):active{transform:translateY(2px)scale(.97)}.pick-add:disabled{opacity:.35;filter:saturate(.3)}.pick-tile.on .pick-add{box-shadow:0 0 0 2px var(--ink)}.pick-name{letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:900}.pick-note{color:#2b2118bf;font-size:11px;font-weight:900}.pick-have{color:#2b211899;font-size:10px;font-weight:800}.pick-count{background:var(--ink);color:#fff;border-radius:0;place-items:center;min-width:24px;height:24px;padding:0 6px;font-size:13px;animation:.3s cubic-bezier(.3,1.8,.5,1) count;display:grid;position:absolute;top:-8px;right:-6px}.pick-minus{border:1px solid var(--parch-edge);background:#fffdf7;border-radius:0;place-items:center;width:26px;height:22px;display:grid;position:absolute;bottom:-6px;left:50%;translate:-50%;box-shadow:0 2px 4px #00000026}.swap-mark{color:var(--ink-2);place-items:center;margin:-4px 0 -8px;display:grid}.to-row{scrollbar-width:none;gap:6px;padding:2px;display:flex;overflow-x:auto}.to-chip{border:1px solid var(--parch-edge);background:#fffdf7;border-radius:0;flex:none;align-items:center;gap:6px;min-height:36px;padding:0 12px 0 8px;font-size:14px;font-weight:800;display:inline-flex}.to-chip:first-child{padding-left:12px}.to-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.to-fixed{align-items:center;gap:8px;font-weight:700;display:flex}.trade-bank,.trade-players{gap:12px;display:grid}.dev-list{gap:8px;display:grid}.dev-card{border:1px solid var(--parch-edge);background:#fffdf7;border-radius:0;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;animation:.35s both rise;display:grid}.dev-art{background:linear-gradient(160deg,#eadcf5,#c7a8de);border-radius:0;place-items:center;width:50px;height:50px;display:grid;box-shadow:inset 0 0 0 2px #ffffff80}.dev-victory .dev-art{background:linear-gradient(160deg,#fff1bd,#f2c43d)}.dev-text{gap:1px;min-width:0;display:grid}.dev-text strong{font-family:Cinzel,serif;font-size:15px}.dev-x{color:var(--ink-2);margin-left:6px;font-family:Nunito,sans-serif}.dev-text small{color:var(--ink-2);font-size:13px;font-weight:600}.dev-text em{color:#7a4ea3;font-size:11px;font-style:normal;font-weight:800}.dev-choose{grid-column:1/-1;gap:12px;padding-top:4px;display:grid}.victims{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;display:grid}.victim{border:1px solid var(--parch-edge);background:#fffdf7;border-radius:0;justify-items:center;gap:6px;padding:16px 8px;transition:border-color .15s;display:grid}.victim:hover{border-color:var(--ink)}.victim small{color:var(--ink-2);font-weight:700}.log-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.log-list li,.activity li{border-bottom:1px solid #2b211814;padding:7px 4px;font-size:14px;font-weight:600}.winner-back{z-index:50;background:radial-gradient(circle,#061a2b66,#061a2bd9);place-items:center;padding:18px;animation:.4s both fade-in;display:grid;position:fixed;inset:0}.winner{text-align:center;justify-items:center;gap:12px;width:min(380px,100%);padding:30px 22px 22px;animation:.7s cubic-bezier(.3,1.5,.5,1) both winner-in;display:grid;position:relative}@keyframes winner-in{0%{opacity:0;transform:scale(.6)rotate(-4deg)}}.winner .crown{filter:drop-shadow(0 4px 8px #0000004d);fill:var(--gold);animation:2.4s ease-in-out infinite bob;position:absolute;top:-26px}.winner h2{font-size:30px}.standings{gap:4px;width:100%;margin:0;padding:0;list-style:none;display:grid}.standings li{border-radius:0;align-items:center;gap:10px;padding:7px 10px;font-weight:800;display:flex}.standings li:first-child{background:#f2c43d4d}.standings b{margin-left:auto;font-family:Cinzel,serif}.winner-actions{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{border-radius:0;width:9px;height:14px;animation:linear infinite both confetti;position:absolute;top:-20px}@keyframes confetti{to{top:105%;transform:rotate(720deg)translate(40px)}}.toast{z-index:60;color:#fff;width:max-content;max-width:calc(100% - 24px);box-shadow:var(--shadow);background:#3a1410;border-radius:0;align-items:center;gap:10px;padding:10px 10px 10px 16px;font-weight:700;animation:.35s cubic-bezier(.3,1.5,.5,1) both toast-in;display:flex;position:fixed;top:64px;left:50%;translate:-50%}.toast button{background:#ffffff1f;border-radius:0;place-items:center;width:28px;height:28px;display:grid}@keyframes toast-in{0%{opacity:0;transform:translateY(-16px)}}.rules-back{z-index:70;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#04121e99;place-items:center;padding:12px;animation:.2s both fade-in;display:grid;position:fixed;inset:0}.rules-modal{background:linear-gradient(180deg, var(--parch), var(--parch-2));width:min(860px,100%);height:min(640px,100dvh - 24px);box-shadow:var(--shadow);border-radius:0;flex-direction:column;animation:.35s cubic-bezier(.2,.8,.2,1) both rise;display:flex;overflow:hidden}.rules-top{border-bottom:1px solid var(--parch-edge);justify-content:space-between;align-items:center;padding:14px 14px 10px 22px;display:flex}.rules-top h2{font-size:24px}.rules-top button{border-radius:0;place-items:center;width:40px;height:40px;display:grid}.rules-top button:hover{background:#2b211814}.rules-body{flex:1;grid-template-columns:190px 1fr;min-height:0;display:grid}.rules-body nav{border-right:1px solid var(--parch-edge);align-content:start;gap:2px;padding:12px;display:grid;overflow-y:auto}.rules-body nav button{text-align:left;color:var(--ink-2);border-radius:0;padding:9px 12px;font-size:14px;font-weight:800}.rules-body nav button.active{background:var(--ink);color:#fff}.rules-body article{align-content:start;gap:12px;padding:20px 24px 28px;display:grid;overflow-y:auto}.rules-body article h3{font-size:22px}.rules-body article h4{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin:8px 0 0;font-size:13px}.rules-body article p,.rules-body article li{font-weight:600;line-height:1.55}.rules-body article ul{gap:6px;margin:0;padding-left:20px;display:grid}.rule-facts{list-style:none;padding:0!important}.rule-facts li{border:1px solid var(--parch-edge);background:#fffdf7;border-radius:0;padding:10px 14px}.cost-list{gap:6px;display:grid}.cost-list>div{border:1px solid var(--parch-edge);background:#fffdf7;border-radius:0;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.rule-cost{gap:3px;display:flex}.rule-callout{border-left:4px solid var(--gold-2);background:#f2c43d40;border-radius:0;padding:12px 16px;font-weight:700}.official-rules{color:var(--red);align-items:center;gap:6px;margin-top:8px;font-weight:800;display:inline-flex}@media (width<=759px){.status{max-width:calc(100% - 96px);left:10px;translate:none}.tool-bar{left:10px;translate:none}.feed{top:auto;bottom:10px;left:56px}.offers{width:auto;left:56px}.player:not(.active):not(.you) .player-name{display:none}}@media (width<=380px){.brand-name{display:none}.res-card{height:58px}.res-name{display:none}.act{font-size:11px}.act .cost-chips .res-icon{width:10px;height:10px}.big-code span{width:40px;height:52px;font-size:24px}}@media (width<=600px){.rules-body{grid-template-rows:auto 1fr;grid-template-columns:1fr}.rules-body nav{border-right:0;border-bottom:1px solid var(--parch-edge);scrollbar-width:none;padding:8px;display:flex;overflow-x:auto}.rules-body nav button{flex:none}.rules-body article{padding:16px}}@media (width<=760px){.brand-name{display:none}}@media (width>=760px){.dock{padding:10px 14px calc(10px + var(--safe-b));grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:center;gap:12px}.res-card{height:72px}.actions{min-height:64px}.act{font-size:13px}.act .cost-chips .res-icon{width:13px;height:13px}.sheet-back{place-items:center;padding:16px}.sheet{border-radius:0;width:min(500px,100%);animation:.3s cubic-bezier(.2,.8,.2,1) both rise}.sheet-grip{display:none;display:none!important}.sheet-head{padding-top:14px}.status{padding-right:8px;font-size:15px}}@media (width>=1024px){.table-screen{grid-template:"top top""board side"minmax(0,1fr)"dock side"/minmax(0,1fr) 300px}.side{background:linear-gradient(#061a2bb8,#061a2be0);border-left:1px solid #ffffff14;flex-direction:column;min-height:0;display:flex}.players{background:0 0;flex-direction:column;gap:8px;padding:12px;overflow:visible}.player{border:1px solid #ffffff14;border-left:4px solid var(--c);background:#ffffff12;border-radius:0;flex:none;gap:12px;padding:10px 12px}.player.active{background:var(--parch);border-color:var(--parch-edge);border-left-color:var(--c);transform:translate(-4px)}.player .avatar{width:38px!important;height:38px!important;font-size:17px!important}.player-name{max-width:150px;font-size:15px;display:flex}.player-name em{display:inline}.player:not(.active) .player-name em{color:#fff;background:#ffffff26}.player-stats{display:flex}.player:not(.active) .player-stats{color:#ffffffa6}.vp b{font-size:24px}.activity{color:#ffffffd9;background:#ffffff0f;border-radius:0;flex-direction:column;flex:1;min-height:0;margin:0 12px 12px;padding:12px 14px;display:flex}.activity h3{letter-spacing:.16em;text-transform:uppercase;color:#ffffff80;margin-bottom:6px;font-family:Nunito,sans-serif;font-size:11px;font-weight:900}.activity ul{scrollbar-width:thin;margin:0;padding:0;list-style:none;overflow-y:auto}.activity li{border-bottom-color:#ffffff12;font-size:13px}.activity li:first-child{color:#fff}.log-btn{display:none!important}.board-tilt{transform:rotateX(18deg)translateY(-1%)}.feed{top:64px}.offers{bottom:14px;right:14px}}@media (width>=1024px) and (height<=760px){.res-card{height:60px}.actions{min-height:54px}}@media (height<=520px) and (orientation:landscape){.table-screen{grid-template:"top top""board side""board dock"minmax(0,1fr)/minmax(0,1fr) minmax(280px,38%)}.players{flex-wrap:wrap}.dock{border-top:0;border-left:1px solid #b07a47;grid-template-columns:minmax(0,1fr);align-content:end}.res-card{height:52px}.res-name{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.spin-island-inner{animation:none}}
