/* A felt game table, warm metal inlays and tangible playing pieces. */
body{background-color:#0f1817;background-image:radial-gradient(ellipse at 50% 37%,#45695242,transparent 64%),repeating-linear-gradient(97deg,#13221e33 0px,#13221e33 2px,transparent 2px,transparent 5px);}
.topbar{border-bottom-color:#68533355;background:linear-gradient(180deg,#131d19bb,#131d1900)}
.brand-icon{box-shadow:inset 0 1px 3px #ffe0a9,0 3px 0 #8b562b,0 7px 18px #0007;background:linear-gradient(130deg,#ffda8a,#df914f)}
.intro .eyebrow{color:#d5bc88}.round-chip{padding:9px 16px;border:1px solid #77654377;border-radius:7px;background:linear-gradient(135deg,#394538,#1b2821);box-shadow:inset 0 1px #f7d89313,0 5px 16px #0002}
.round-chip strong{color:#f8d594}.round-chip .progress{background:#0b1610;box-shadow:inset 0 1px 3px #0008}.round-chip .progress i{background:linear-gradient(90deg,#bc823e,#f2d48c);box-shadow:0 0 9px #e9ae6266}
.table-board{border:2px solid #a48a56;background:repeating-linear-gradient(91deg,#31251d30 0,#31251d30 2px,transparent 2px,transparent 7px),linear-gradient(145deg,#584735,#302d22 28%,#5b4e36 72%,#2d251e);box-shadow:inset 0 0 0 3px #252a20,inset 0 0 0 5px #c19a5166,0 7px 0 #101814,0 12px 0 #263325,0 22px 35px #0006;border-radius:17px;padding:17px;position:relative;}
.table-board .panel-top{color:#f5d89f;text-shadow:0 2px 1px #0008}.table-board .panel-top small,.board-count{color:#d1c09a}.table-board .board-foot{color:#d7caa6}
.board{position:relative;isolation:isolate;overflow:visible;padding:0;border-radius:9px;background:radial-gradient(ellipse at 50% 42%,#466e54 0,#284a39 45%,#183025 82%);box-shadow:0 0 0 4px #182820,inset 0 0 36px #061a12;}
.board:before{content:'';position:absolute;inset:0;border-radius:inherit;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.14' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none;opacity:.4;z-index:-1}
.table-board .tile{--tile-accent:#a4c9a6;background:linear-gradient(145deg,#445044,#29382e 75%);border:1px solid #7b886465;box-shadow:inset 0 2px 1px #c5dfab1c,inset 0 -4px 0 #0c1b1480,0 2px 3px #0005;border-radius:9px;justify-content:flex-start;padding-top:18px;gap:4px;transition:background .2s,box-shadow .2s,border-color .2s}
.tile:before{content:'';position:absolute;top:6px;right:7px;width:12px;height:3px;border-radius:3px;background:var(--tile-accent);opacity:.7;box-shadow:0 0 7px color-mix(in srgb,var(--tile-accent) 20%,transparent)}
.table-board .tile-icon{font-size:22px;filter:drop-shadow(0 2px 1px #0007);color:var(--tile-accent);height:23px;line-height:23px}
.table-board .tile-label{font-size:18px;line-height:1.3;text-shadow:0 2px 1px #0009;color:#f6f0d9;font-weight:750}
.table-board .tile-num{font-size:9px;color:#b5b995;text-shadow:0 1px #000}
.tile.life{--tile-accent:#c0a7d9;background:linear-gradient(145deg,#4d4851,#323338 75%)}
.tile.market,.tile.social{--tile-accent:#f0b56a;background:linear-gradient(145deg,#56513b,#343c2e 75%)}
.tile.auction{--tile-accent:#f2d68b;background:linear-gradient(145deg,#64543b,#433c2a 75%);border-color:#9a845380}
.tile.security{--tile-accent:#8bc9cd;background:linear-gradient(145deg,#3b5350,#253b33 75%)}
.tile.start{--tile-accent:#ffdb8c;background:linear-gradient(145deg,#826337,#4d472d 75%)}
.table-board .tile.active{border-color:#f5cf81;box-shadow:inset 0 0 0 1px #f5c56b77,inset 0 2px 9px #f5be5444,0 0 14px #ffc66e33}
.tile.trail-tile{border-color:#dbbc7066;background-image:linear-gradient(145deg,#716a3c99,#405038)}
.tile.landing-tile{animation:landing-glow .65s ease-out}
@keyframes landing-glow{0%{box-shadow:0 0 0 0 #ffd98999,inset 0 0 20px #ffe9a788}100%{box-shadow:0 0 0 13px #ffd98900,inset 0 0 0 #ffe9a700}}
.market-center{position:relative;z-index:1;background:radial-gradient(ellipse,#6e956337,transparent 72%);border:1px solid #b7c48622;border-radius:24px;box-shadow:inset 0 0 0 6px #223f301c,inset 0 0 0 7px #d7d69b11;margin:7px;}
.market-center:before{content:'✦';position:absolute;left:12px;top:8px;color:#c5ca8f77;font-size:14px}.market-center:after{content:'✦';position:absolute;right:12px;bottom:8px;color:#c5ca8f77;font-size:14px}
.market-center .center-orbit{border-color:#d2be6977;box-shadow:0 0 23px #edc16115}.market-center .big-coin{background:linear-gradient(140deg,#fff1b9,#d1a94c 47%,#ffde8c 55%,#b88438);color:#624719;text-shadow:1px 1px #ffe8ad;box-shadow:inset 0 0 0 2px #ae7a30,0 4px 0 #8d652a,0 10px 18px #07160c99}
.center-price-label{color:#d2d6b8}.center-price{color:#fff0c9;text-shadow:0 3px 2px #0b221ba0,0 0 25px #dbca6d24}.center-price small{color:#d2d6b8}.center-change span{color:#bacdb3}
.price-stage{background:linear-gradient(145deg,#173b2b,#122f22);box-shadow:inset 0 1px #b6d99b12;border-color:#76906155}.price-stage.latest{border-color:#c5a468;background:linear-gradient(145deg,#5a5732,#323d26)}.price-stage.latest strong{color:#ffdd97}
.turn-bar{background:linear-gradient(145deg,#183529,#172b20);border-color:#91a07488;box-shadow:inset 0 1px #d5ecad22,0 3px 8px #0003}
.turn-bar strong{color:#ffe5ab}.turn-bar .dice{width:39px;height:39px;gap:4px;padding:7px;color:#253326;background:linear-gradient(135deg,#fff9e5,#cbbd96);border:1px solid #ffedbd;border-radius:8px;box-shadow:2px 4px 0 #877447,4px 7px 8px #0006;transform:rotate(-6deg);}
.dice i{width:5px;height:5px;box-shadow:inset 0 1px 1px #000b}.turn-bar .dice.rolling{animation:tumble-dice .3s linear infinite}.dice-revealed{animation:dice-settle .32s ease-out}
@keyframes tumble-dice{0%{transform:translateY(0) rotate(-12deg)}25%{transform:translateY(-12px) rotate(70deg)}75%{transform:translateY(-6px) rotate(225deg)}100%{transform:translateY(0) rotate(348deg)}}
@keyframes dice-settle{0%{transform:scale(1.3) rotate(12deg)}100%{transform:scale(1) rotate(-6deg)}}
.primary{background:linear-gradient(180deg,#ffda86,#e6a957 48%,#d99745);border:1px solid #ffe6ac;color:#3c2913;text-shadow:0 1px #ffe2a4;box-shadow:inset 0 1px 1px #fff6d0,0 4px 0 #805626,0 7px 12px #0004;border-radius:7px}
.primary:hover:not(:disabled){filter:brightness(1.08);box-shadow:inset 0 1px 1px #fff6d0,0 4px 0 #805626,0 0 20px #e7b66436}.primary:active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 1px #fff4c8,0 1px 0 #805626}
.secondary,.center-trades button{background:linear-gradient(180deg,#4b6650,#2c4737);border-color:#9db38177;box-shadow:inset 0 1px #daebad22,0 3px 0 #142d20;color:#e4ebcd}
.seat-card{background:linear-gradient(135deg,#354437,#202d24 65%);border-color:#6c7f5866;box-shadow:inset 0 1px #d4dfb820,0 4px 0 #0d1b14,0 8px 20px #0003;position:relative;border-radius:12px}
.seat-card.active-seat{background:radial-gradient(ellipse at 15% 0,color-mix(in srgb,var(--seat-color) 15%,transparent),transparent 80%),linear-gradient(135deg,#354437,#202d24);border-color:var(--seat-color);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--seat-color) 25%,transparent),0 4px 0 #0e1c14,0 0 20px color-mix(in srgb,var(--seat-color) 12%,transparent)}
.seat-header{border-bottom-color:#a8b88033}.seat-name strong{color:#f5e8c8;text-shadow:0 2px #0c1e15}.seat-header .avatar{background:radial-gradient(circle at 30% 20%,color-mix(in srgb,var(--player) 30%,transparent),#172b20);box-shadow:inset 0 0 0 2px #0d1b1477,0 3px 4px #0004;border-radius:9px;overflow:visible}
.seat-header .avatar svg{height:45px;width:31px;filter:drop-shadow(0 2px 2px #0005);transform:translateY(-3px)}
.seat-finances strong{text-shadow:0 2px #0d1b17;color:#eff0d4}.seat-finances .seat-bitcoin strong{color:#f0c376}.seat-ledger{background:#13251b55;border-radius:5px;border-top:0;padding:8px}.seat-bottom{color:#b7c8a7}
.empty-seat{background:repeating-linear-gradient(135deg,#1e2a2100 0,#1e2a2100 7px,#93a57107 7px,#93a57107 8px);border-color:#64764d55;box-shadow:inset 0 0 24px #0002}
.pawn-layer{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:visible}
.departure-dock{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #b69b6055;border-radius:9px;padding:8px 12px;margin-bottom:10px;background:linear-gradient(120deg,#27372a,#18291f);box-shadow:inset 0 1px #e8ce8f15;min-height:60px}
.departure-copy{min-width:0}.departure-copy strong{display:block;color:#efcf88;font-size:14px}.departure-copy strong span{font-size:11px;color:#b2c3a8;margin-left:8px}.departure-copy small{display:block;color:#afbfaa;font-size:11px;margin-top:4px;line-height:1.4}
.departure-slots{display:flex;gap:9px;flex-shrink:0}.departure-slot{position:relative;width:32px;height:42px;border-bottom:2px solid var(--pawn-color);border-radius:50%;background:radial-gradient(ellipse at bottom,color-mix(in srgb,var(--pawn-color) 15%,transparent),transparent 70%)}
.departure-slot>span{position:absolute;inset:auto 0 0;text-align:center;font-size:10px;color:#a5b394;opacity:.45}.departure-slot.departed{opacity:.25;border-bottom-style:dashed}.departure-slot svg{height:40px;width:29px;position:relative;z-index:1}.lobby-departure{margin:20px 0}.pending-projects{background:#17261d;padding:14px;border-radius:8px;margin:14px 0}.pending-projects li{margin:9px 0;font-size:14px;line-height:1.6}.pending-projects p{font-size:14px}
.table-board .board{overflow:visible}
@media(min-width:901px){.table-board.has-departure{grid-template-rows:auto auto minmax(0,1fr) auto;row-gap:8px}.table-board.has-departure .departure-dock{margin:0;min-height:58px}.market-center #reserveBtn{font-size:11px;padding:2px}}
@media(max-width:1200px){.departure-slots{gap:4px}.departure-slot{width:26px}.departure-copy small{font-size:10px}.departure-dock{padding:7px 9px}}
@media(max-width:520px){.departure-dock{flex-wrap:wrap;gap:6px}.departure-copy{width:100%;display:flex;align-items:center;justify-content:space-between;gap:7px}.departure-copy small{max-width:125px}.departure-slots{width:100%;justify-content:space-around}.departure-slot{width:30px}}
.board-pawn{position:absolute;height:42px;transform:translate(-50%,-100%);will-change:top,left;pointer-events:auto;z-index:1;filter:drop-shadow(1px 3px 2px #0007)}
.pawn-model{position:relative;height:100%;width:100%;transform-origin:50% 90%;z-index:2}.pawn-model svg{display:block;width:100%;height:100%;overflow:visible}
.pawn-shadow{position:absolute;left:5%;right:5%;bottom:1px;height:8px;background:#0008;border-radius:50%;filter:blur(2px)}
.current-pawn{z-index:3}.current-pawn .pawn-shadow{background:var(--pawn-color);filter:blur(4px);opacity:.6}
.current-pawn:before{content:'';position:absolute;inset:auto 0 0;height:10px;border:1px solid var(--pawn-color);border-radius:50%;box-shadow:0 0 8px var(--pawn-color)}
.moving-pawn{z-index:6}.moving-pawn .pawn-shadow{animation:shadow-hop .29s ease-in-out infinite}
@keyframes shadow-hop{50%{transform:scale(.6);opacity:.3}}
.pawn-label{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);font-size:11px;font-weight:650;white-space:nowrap;background:#12261eee;border:1px solid var(--pawn-color);border-radius:4px;padding:3px 6px;color:#f7efd8;opacity:0;pointer-events:none;box-shadow:0 3px 8px #0006}
.board-pawn:hover .pawn-label,.moving-pawn .pawn-label{opacity:1}.board-pawn.crowded{height:32px}
.motion-controls{min-height:21px;display:flex;justify-content:center;align-items:center}.motion-controls button{background:none;color:#d1d5b5;font-size:11px;line-height:1.4;padding:3px 9px;text-decoration:underline;text-underline-offset:3px}
.modal{background:radial-gradient(ellipse at top,#4b644933,transparent 70%),#202e23;border:1px solid #bea574;box-shadow:inset 0 0 0 4px #18281e,inset 0 0 0 5px #a2945d44,0 28px 100px #000a}.modal h2{color:#f3e5c8}.choice{box-shadow:inset 0 1px #a4c28619,0 3px 0 #0f2117;background:linear-gradient(145deg,#354b35,#263c2b)}
@media(min-width:901px){.market-center{padding:6px 10px}.seat-ledger{padding:7px}.table-board .tile{padding-top:17px}.game-table{gap:19px}.market-center .center-orbit{width:60px;height:60px;margin-bottom:4px}.market-center .big-coin{width:49px;height:49px;font-size:33px}.center-chart .spark{height:32px}.market-center .turn-bar{padding:7px 10px}.center-trades button{padding:7px 4px}.market-center .roll-btn{padding:9px 6px}.market-center #repayBtn{padding:2px;font-size:11px}.center-price{font-size:39px}}
@media(min-width:901px) and (max-width:1200px){.game-table{gap:12px}.table-board{padding:11px}.table-board .tile-label{font-size:15px}.table-board .tile-icon{font-size:21px}.seat-ledger{padding:6px}.market-center{margin:4px;padding:5px}.center-price{font-size:33px}.center-change span{display:block;margin:0}.turn-bar .dice{width:32px;height:32px;padding:5px;gap:3px}.dice i{width:4px;height:4px}.market-center .turn-bar strong{font-size:14px}.market-center .turn-bar small{font-size:11px}.market-center .turn-bar .avatar{width:24px;height:24px}.center-price-label{font-size:12px}}
@media(max-width:900px){.table-board{padding:13px}.seat-header .avatar svg{height:40px}.table-board .tile{padding-top:20px}.market-center{margin:6px}}
@media(max-width:520px){.table-board{padding:9px}.table-board .tile{padding-top:19px;gap:5px;border-radius:6px}.table-board .tile-label{font-size:14px}.table-board .tile-icon{font-size:21px}.table-board .tile:before{width:7px;right:4px;top:5px}.market-center{margin:3px;padding:6px 4px;border-radius:15px}.center-change span{font-size:10px}.turn-bar .dice{width:31px;height:31px;padding:5px;gap:3px}.dice i{width:4px;height:4px}.seat-header .avatar svg{height:38px}.seat-ledger{padding:6px}.game-table{gap:10px}}
@media(prefers-reduced-motion:reduce){.rolling,.landing-tile,.moving-pawn .pawn-shadow{animation:none!important}.board-pawn{transition:none!important}}
.board-pawn{height:36px}.board-pawn.crowded{height:27px}
.table-board .tile.has-crowd .tile-icon{display:none}.table-board .tile.has-crowd{padding-top:13px}.table-board .tile.has-crowd .tile-label{font-size:15px}
@media(min-width:901px){.table-board .tile{padding-top:10px;gap:3px}.table-board .tile-icon{font-size:20px;height:20px;line-height:20px}}
@media(min-width:901px) and (max-width:1200px){.board-pawn{height:33px}.board-pawn.crowded{height:26px}}
