#app.match-screen{max-width:520px;min-height:100vh;min-height:100dvh;padding:12px 13px 22px;background:radial-gradient(ellipse at 30% 25%,#64405d44,transparent 52%),radial-gradient(ellipse at 85% 65%,#763b4f22,transparent 48%),repeating-linear-gradient(45deg,#ffffff01 0,#ffffff01 1px,transparent 1px,transparent 5px),linear-gradient(145deg,#392039,#29182e 70%,#1d1226)}
.table-toolbar{display:flex;align-items:center;gap:8px;min-height:40px}.table-toolbar button{border:0;background:transparent;color:#eadcea;font-size:23px;width:34px;height:40px;padding:0}.table-mode,.table-free{background:#ffffff12;color:#d5c8d7;border-radius:8px;padding:8px 9px;font-size:9px;font-weight:800;letter-spacing:.4px}.table-free{color:#f5dba5}.table-wallet{margin-left:auto;color:#a7dc84;font-size:19px;white-space:nowrap}.table-wallet b{font-size:13px;color:#fff}.table-wallet span{font-size:9px;color:#b2a2b6}.match-table{max-width:480px;margin:auto}.table-heading{text-align:center;margin:19px 0 5px}.table-heading>span{display:block;font-size:11px;font-weight:900;color:#d3b6ca;letter-spacing:3px}.table-heading small{display:block;font-size:8px;color:#ac91ab;margin-top:6px;letter-spacing:1.5px}.match-screen .seat-row{display:flex;justify-content:space-between;gap:0;margin:15px 2px 8px}.match-screen .player-seat{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:0;min-width:68px;max-width:120px;background:none;border:0;border-radius:0;box-shadow:none}.match-screen .seat-row>.player-seat:last-child,.table-bottom>.player-seat{align-items:flex-end;text-align:right}.match-screen .seat-avatar{width:50px;height:50px;border-radius:50%;border:2px solid var(--seat);background:radial-gradient(circle at 30% 30%,#f2e8e3,#76596b);font-size:31px;box-shadow:0 0 0 3px #17151e55}.match-screen .player-seat.active .seat-avatar{box-shadow:0 0 0 3px #ffdf9a,0 0 20px #ffe19533}.match-screen .seat-details b{font-size:10px;color:#f3e6ef;max-width:115px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.match-screen .seat-details>span{font-size:8px;color:#b5a2b7}.match-screen .home-progress{margin-top:3px;gap:3px}.match-screen .home-progress i{height:3px;width:8px;background:#7f697b}.match-screen .home-progress i.finished{background:#ffdd87}.match-screen .turn-beacon{display:none}.match-screen .board-frame{border:3px solid #a8864d!important;border-radius:2px!important;box-shadow:0 10px 30px #0007!important}.match-screen .board-edge{box-shadow:none}.table-bottom{display:flex;align-items:flex-start;justify-content:space-between;margin:10px 2px 0;gap:12px}.local-seat{display:flex;align-items:center;gap:18px;min-width:0}.match-screen .dice-button{min-height:64px;gap:8px;margin:0 2px}.match-screen .dice-face{width:48px;height:48px;padding:9px;gap:3px;border-radius:10px;transform:rotate(0);background:linear-gradient(145deg,#f7eddf,#c7bcbe);box-shadow:0 4px 0 #78667c,0 0 0 3px #aa8e5044,0 5px 12px #0007}.match-screen .dice-face .pip{background:#514155}.match-screen .dice-caption{font-size:7px;letter-spacing:.7px;color:#ddcdaa}.match-screen .table-status{margin:8px 0 0;padding:0;text-align:center;min-height:38px}.table-status .eyebrow{font-size:8px;color:#c8b6cb;letter-spacing:1.5px}.table-status h3{font-size:14px;font-weight:700;color:#f4e5ee;margin:3px 0}.table-status p{font-size:10px;color:#b49db5;margin:2px 0 5px;line-height:1.35}.match-screen .token-choices{margin:8px 0}.match-screen .token-choices:empty{display:none}.match-screen .token-choices button:not(:disabled){background:#dceafa;border-color:#9dd4ff;color:#164d87}.match-screen .token-choices button:disabled{background:#544051;border-color:#7e6678;color:#c5b7c2}.social-toolbar{display:flex;align-items:center;gap:7px;margin-top:10px}.social-toolbar button{border:0;border-radius:8px;background:linear-gradient(#715c74,#56405d);color:#f4edf5;min-height:34px;padding:8px 12px;font-size:10px;font-weight:800}.social-toolbar>span{font-size:8px;color:#af99b0;margin-left:auto}.match-screen .audio-controls{gap:6px;margin:12px 0 0}.match-screen .audio-controls button{background:#ffffff07;border-color:#685369;color:#bca8bf;font-size:10px;min-height:34px}.match-screen .audio-controls button[aria-pressed=true]{background:#765d7522;color:#edd5a9;border-color:#927853}.table-note{text-align:center;font-size:9px;color:#a48ca5;margin:10px 0 0;line-height:1.4}.match-overlay{position:fixed;inset:0;background:#120a1dcc;z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:14px}.match-sheet{background:#38253e;border:1px solid #806a82;border-radius:20px;padding:20px;width:100%;max-width:470px;max-height:80vh;overflow:auto;box-shadow:0 -10px 45px #0005}.match-sheet h2{font-size:19px;margin:0}.panel-close{border:0;background:#ffffff15;color:white;font-size:25px;width:38px;height:38px;border-radius:50%}.emoji-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.emoji-grid button{font-size:32px;border:1px solid #8e7190;background:#513656;padding:15px;border-radius:13px}.match-messages{max-height:35vh;overflow:auto}.match-sheet .muted{color:#c8b9ce}.match-sheet .compose{margin-top:14px}.match-sheet .bubble.mine{background:#655184}.match-sheet .btn.ghost{background:#6b455b;border-color:#a16c7c}
@media(max-width:360px){#app.match-screen{padding:9px 10px 15px}.table-heading{margin:10px 0 0}.match-screen .seat-avatar{width:43px;height:43px;font-size:27px}.match-screen .seat-row{margin-top:9px}.match-screen .player-seat{min-width:55px}.table-mode{font-size:8px;padding:7px}.table-free{font-size:8px}.local-seat{gap:12px}.table-status h3{font-size:13px}.social-toolbar{margin-top:6px}.match-screen .audio-controls{margin-top:8px}}
.match-screen .dice-button[data-player="0"]{--dice-light:#62baff;--dice-main:#287fce;--dice-edge:#14487e;--dice-pips:#fff}.match-screen .dice-button[data-player="1"]{--dice-light:#ff957c;--dice-main:#df5139;--dice-edge:#8c291c;--dice-pips:#fff}.match-screen .dice-button[data-player="2"]{--dice-light:#8ddd7c;--dice-main:#49ac4b;--dice-edge:#22622b;--dice-pips:#fff}.match-screen .dice-button[data-player="3"]{--dice-light:#ffe996;--dice-main:#eebc35;--dice-edge:#99701a;--dice-pips:#4a350b}.match-screen .dice-button[data-player] .dice-face{background:linear-gradient(145deg,var(--dice-light),var(--dice-main));box-shadow:0 4px 0 var(--dice-edge),0 0 0 2px #ffffff35,0 7px 16px #0006}.match-screen .dice-button[data-player] .dice-face .pip{background:var(--dice-pips);box-shadow:0 1px 2px #0004}.match-screen .dice-button[data-player]:disabled{opacity:1}.match-screen .dice-button[data-player] .dice-caption{color:var(--dice-light)}
.match-screen .player-station{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:48%;min-width:0}.match-screen .player-station[data-station="2"],.match-screen .player-station[data-station="3"]{flex-direction:row-reverse}.match-screen .player-station[data-station="2"] .player-seat,.match-screen .player-station[data-station="3"] .player-seat{align-items:flex-end;text-align:right}.match-screen .player-station .player-seat{min-width:0;max-width:90px}.match-screen .player-station .seat-details b{max-width:90px}.dice-dock{display:flex;align-items:center;justify-content:center;width:62px;min-width:62px;min-height:72px}.match-screen .dice-face.dice-portrait{display:flex;align-items:center;justify-content:center;padding:4px;overflow:hidden}.dice-portrait img{width:100%;height:100%;object-fit:cover;border-radius:6px}.dice-avatar{display:block;font-size:32px;line-height:1}.match-screen .table-bottom{gap:8px}@media(max-width:360px){.match-screen .player-station{gap:5px}.match-screen .player-station .player-seat{max-width:66px}.match-screen .player-station .seat-details b{max-width:66px}.dice-dock{width:57px;min-width:57px}}
.winner-celebration{position:relative;overflow:hidden;padding:45px 8px 8px;isolation:isolate}.crowned-avatar{position:relative;width:148px;height:148px;margin:20px auto 22px}.winner-portrait{position:absolute;inset:14px;border:4px solid #ffdc79;border-radius:50%;background:var(--winner-color);display:grid;place-items:center;overflow:hidden;box-shadow:0 0 35px #ffcf4844}.winner-portrait span{font-size:68px}.winner-portrait img{width:100%;height:100%;object-fit:cover}.winner-halo{position:absolute;inset:-14px;border:1px solid #ffe29866;border-radius:50%;box-shadow:0 0 55px #ffcf4833;animation:winner-glow 1.4s ease-in-out 2}.winner-crown{position:absolute;width:103px;height:75px;left:23px;top:-39px;filter:drop-shadow(0 5px 6px #0005);transform-origin:center bottom;animation:crown-land .9s cubic-bezier(.2,.8,.3,1.2) both}.winner-ribbon{display:inline-block;background:linear-gradient(110deg,#d7a135,#ffe6a0,#d7a135);color:#5c3909;padding:8px 25px;border-radius:6px;font-size:12px;font-weight:900;letter-spacing:3px}.winner-celebration h1{margin:15px 0 5px;color:#ffe5a0}.winner-celebration p{font-size:13px}.winner-confetti{position:absolute;inset:0;pointer-events:none;z-index:-1}.winner-confetti i{position:absolute;left:var(--x);top:-20px;width:7px;height:13px;border-radius:2px;background:var(--c);animation:winner-fall 2.6s ease-out var(--delay) both}@keyframes crown-land{0%{opacity:0;transform:translateY(-60px) scale(.65) rotate(-16deg)}70%{opacity:1;transform:translateY(5px) scale(1.08) rotate(4deg)}100%{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes winner-fall{0%{opacity:0;transform:translateY(0) rotate(0)}12%{opacity:1}100%{opacity:0;transform:translate(var(--drift),390px) rotate(400deg)}}@keyframes winner-glow{50%{transform:scale(1.08);opacity:.6}}@media(prefers-reduced-motion:reduce){.winner-crown,.winner-halo,.winner-confetti i{animation:none}.winner-confetti{display:none}}
.player-reaction{position:absolute;left:39px;top:-24px;z-index:8;display:grid;place-items:center;min-width:49px;height:48px;padding:5px 9px;border-radius:16px 16px 16px 4px;background:#fff8e9;border:2px solid #e7c77c;box-shadow:0 5px 15px #160a234d;font-size:29px;line-height:1;pointer-events:none;transform-origin:bottom left;animation:reaction-bubble 3.6s ease both}.player-station[data-station="2"] .player-reaction,.player-station[data-station="3"] .player-reaction{left:auto;right:39px;border-radius:16px 16px 4px 16px;transform-origin:bottom right}@keyframes reaction-bubble{0%{opacity:0;transform:translateY(7px) scale(.5)}10%{opacity:1;transform:translateY(-2px) scale(1.12)}17%,83%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-9px) scale(.9)}}@media(prefers-reduced-motion:reduce){.player-reaction{animation:none}}
.player-chat-notice{position:absolute;left:0;bottom:calc(100% + 11px);width:clamp(165px,48vw,220px);z-index:9;filter:drop-shadow(0 7px 13px #180c3055);animation:chat-notice-in 6.5s ease both;transform-origin:25px bottom}.player-chat-notice:after{content:"";position:absolute;bottom:-7px;left:20px;width:14px;height:14px;background:#fff8ed;transform:rotate(45deg);border-right:1px solid #ecd9b8;border-bottom:1px solid #ecd9b8}.player-chat-notice>button{display:block;width:100%;text-align:left;padding:12px 13px 10px;border:1px solid #ecd9b8;border-top:3px solid var(--chat-colour);border-radius:15px;background:linear-gradient(145deg,#ffffff,#fff8ed);color:#35283b;cursor:pointer;position:relative}.chat-notice-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.chat-notice-header i{width:7px;height:7px;border-radius:50%;background:var(--chat-colour);flex-shrink:0}.chat-notice-header strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-notice-header small{font-size:7px;letter-spacing:1px;margin-left:auto;background:#ede6ef;color:#88708e;padding:3px 5px;border-radius:5px}.chat-notice-text{font-size:12px;line-height:1.45;font-weight:500;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.chat-notice-footer{display:flex;justify-content:space-between;margin-top:8px;color:#9e889e;font-size:8px}.player-station[data-station="2"] .player-chat-notice,.player-station[data-station="3"] .player-chat-notice{left:auto;right:0;transform-origin:calc(100% - 25px) bottom}.player-station[data-station="2"] .player-chat-notice:after,.player-station[data-station="3"] .player-chat-notice:after{left:auto;right:20px}.table-top-seats .player-chat-notice{bottom:auto;top:calc(100% + 11px)}.table-top-seats .player-chat-notice:after{bottom:auto;top:-7px;transform:rotate(225deg)}@keyframes chat-notice-in{0%{opacity:0;transform:translateY(7px) scale(.92)}5%,90%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-5px) scale(.98)}}@media(prefers-reduced-motion:reduce){.player-chat-notice{animation:none}}
.match-screen .dice-dock{width:76px;min-width:76px;min-height:91px}.match-screen .dice-button{min-height:86px;gap:12px}.match-screen .dice-button[data-player] .dice-face{width:64px;height:64px;padding:12px;gap:5px;border-radius:14px;box-shadow:0 6px 0 var(--dice-edge),0 0 0 3px #fff8,0 0 22px var(--dice-main),0 10px 18px #0007}.match-screen .dice-button[data-player] .dice-face.dice-portrait{padding:4px}.match-screen .dice-portrait img{border-radius:10px}.match-screen .dice-avatar{font-size:43px}.match-screen .dice-caption{font-size:8px;font-weight:900;letter-spacing:.8px}.match-screen .dice-button:not(:disabled) .dice-face{animation:dice-ready 1.6s ease-in-out infinite}@keyframes dice-ready{50%{transform:translateY(-3px) scale(1.055)}}@media(max-width:360px){.match-screen .dice-dock{width:66px;min-width:66px;min-height:83px}.match-screen .dice-button[data-player] .dice-face{width:56px;height:56px;padding:10px;gap:4px}.match-screen .dice-button[data-player] .dice-face.dice-portrait{padding:4px}.match-screen .dice-avatar{font-size:36px}.match-screen .player-station .player-seat,.match-screen .player-station .seat-details b{max-width:60px}.match-screen .dice-caption{font-size:7px}}@media(prefers-reduced-motion:reduce){.match-screen .dice-button:not(:disabled) .dice-face{animation:none}}
/* Glossy beveled dice, coordinated with the sculpted pawns. */
.match-screen .dice-button[data-player] .dice-face{
  position:relative;isolation:isolate;border:2px solid #fff1c9;border-radius:17px;
  background:radial-gradient(ellipse at 22% 8%,#ffffffbb,transparent 46%),linear-gradient(145deg,var(--dice-light) 5%,var(--dice-main) 58%,var(--dice-edge));
  box-shadow:inset 0 2px 2px #ffffffaa,inset 2px 0 3px #ffffff55,inset -3px -4px 5px #0004,0 2px 0 var(--dice-edge),0 7px 0 var(--dice-edge),0 8px 0 #fff0b877,0 13px 15px #0008,0 0 19px var(--dice-main);
  transition:box-shadow .18s,filter .18s;
}
.match-screen .dice-button[data-player] .dice-face:after{
  content:'';position:absolute;inset:4px;border-radius:11px;border:1px solid #ffffff40;pointer-events:none;
  background:linear-gradient(145deg,#ffffff25,transparent 38%,transparent 75%,#00000012);
}
.match-screen .dice-button[data-player] .dice-face .pip{
  position:relative;z-index:1;background:radial-gradient(circle at 65% 75%,#fffef4 25%,#e4e1d6 75%);
  box-shadow:inset 1px 2px 2px #0008,0 1px 0 #ffffff88;border:1px solid #00000020;
}
.match-screen .dice-button[data-player="3"] .dice-face .pip{
  background:radial-gradient(circle at 65% 75%,#795013,#32210a);box-shadow:inset 1px 2px 2px #0008,0 1px 0 #fff9;
}
.match-screen .dice-button[data-player] .dice-face.dice-portrait{padding:6px}
.match-screen .dice-portrait img{border-radius:10px;border:1px solid #ffffff99;box-shadow:0 2px 5px #0006}
.match-screen .dice-avatar{filter:drop-shadow(0 3px 2px #0005)}
.match-screen .dice-caption{background:#170d2677;border:1px solid #ffffff20;padding:4px 6px;border-radius:12px;font-size:7px;white-space:nowrap}
.match-screen .dice-button:focus-visible{outline:2px solid #ffe9ab;outline-offset:5px;border-radius:16px}
.match-screen .dice-button:not(:disabled):active .dice-face{animation:none;transform:translateY(3px) scale(.97)}
@media(max-width:360px){.match-screen .dice-button[data-player] .dice-face{border-radius:14px;padding:9px;gap:4px}.match-screen .dice-button[data-player] .dice-face.dice-portrait{padding:5px}.match-screen .dice-caption{font-size:6px;padding:4px}}
/* Black enamel and polished gold tournament dice. */
.match-screen .dice-button[data-player] .dice-face.royal-dice{
  border:3px solid transparent;border-radius:17px;
  background:linear-gradient(145deg,#344154 0%,#101925 36%,#050910 70%,#1b2737 100%) padding-box,linear-gradient(135deg,#9a5605 0%,#fff4b2 16%,#ffb916 30%,#ad6806 45%,#ffe794 63%,#fff6c9 75%,#cc820b 92%) border-box;
  box-shadow:inset 0 1px 2px #ffffff55,inset 0 -3px 6px #000c,0 2px 0 #fff0a0,0 5px 0 #bb790e,0 8px 0 #6b3c04,0 9px 0 #ffda68,0 14px 18px #000a,0 0 17px #f6b82955;
  padding:10px;gap:5px;
}
.match-screen .dice-button[data-player] .royal-dice:after{inset:2px;border-radius:11px;border:1px solid #ffda6c66;background:linear-gradient(135deg,#ffffff18,transparent 42%,#00000022);box-shadow:inset 0 0 5px #0008}
.match-screen .dice-button[data-player] .royal-dice .pip{
  background:radial-gradient(circle at 28% 24%,#fffdeb 0%,#ffea97 23%,#ffc333 50%,#b26807 85%,#713c02 100%);
  border:1px solid #f9d779;box-shadow:inset 0 1px 1px #fff7c9,0 1px 3px #000c,0 0 5px #ffc44044;
}
.match-screen .dice-button[data-player] .royal-dice.dice-portrait{padding:7px;overflow:visible}
.royal-dice-crown{width:100%;height:100%;filter:drop-shadow(0 2px 1px #000) drop-shadow(0 0 4px #ffc02c55)}
.match-screen .dice-button[data-player] .dice-caption{color:#ffdf8a;background:linear-gradient(#20242d,#080d17);border-color:#b88027;box-shadow:0 2px 5px #0005;border-bottom:2px solid var(--dice-main)}
@media(max-width:360px){.match-screen .dice-button[data-player] .dice-face.royal-dice{border-radius:14px;padding:8px;gap:4px}.match-screen .dice-button[data-player] .royal-dice.dice-portrait{padding:5px}}
/* Warm tournament table inspired by the wooden-board reference. */
#app.match-screen{max-width:860px;padding:14px 18px 24px;background:radial-gradient(ellipse at 45% 25%,#ffc17c22,transparent 65%),repeating-linear-gradient(0deg,#27120633 0 2px,transparent 2px 7px,#efb4710c 8px 10px,transparent 10px 21px),repeating-linear-gradient(2deg,#4a210d 0,#85411c 36px,#9d5428 72px,#582911 110px);box-shadow:inset 0 0 85px #160800aa}.match-table{max-width:700px;position:relative}.match-screen .table-heading{width:max-content;max-width:90%;margin:0 auto 15px;padding:12px 25px;background:linear-gradient(#243e5d,#071726);border:2px solid #b69a63;border-radius:28px;box-shadow:0 4px 0 #241308,0 5px 12px #0005}.match-screen .table-heading>span{font-size:19px;color:#fff5da;letter-spacing:1px}.match-screen .table-heading small{color:#d5e7f9;font-size:10px;letter-spacing:.7px}.match-screen .table-toolbar{margin-bottom:8px}.match-screen .table-mode,.match-screen .table-free,.match-screen .table-wallet{background:#101c2dd9;border:1px solid #be954d;border-radius:10px;padding:7px;color:#ffe1a0}.match-screen .table-toolbar button,.match-screen .social-toolbar button{background:linear-gradient(#34405d,#111d35);border:2px solid #858ba2;border-radius:13px;box-shadow:0 3px 0 #080f20;color:#fff}.match-screen .seat-row{margin:0 0 16px;gap:12px}.match-screen .player-station{width:48%;gap:0;display:block}.match-screen .player-station .player-seat{width:100%;max-width:none;min-height:70px;display:flex;flex-direction:row;align-items:center;gap:10px;padding:8px 10px;border:3px solid var(--seat);border-radius:20px;background:linear-gradient(135deg,#243750,#080e19);box-shadow:inset 0 0 0 1px #ffffff55,0 4px 0 #281309,0 6px 10px #0005;text-align:left}.match-screen .player-station[data-station="2"] .player-seat,.match-screen .player-station[data-station="3"] .player-seat{flex-direction:row-reverse;text-align:right;align-items:center}.match-screen .player-seat.active{box-shadow:inset 0 0 0 1px #fff7,0 0 0 2px #ffde77,0 0 20px #ffcd4b88}.match-screen .seat-avatar{width:56px;height:56px;border-width:3px;font-size:36px}.match-screen .player-station .seat-details b{max-width:140px;font-size:15px;font-weight:800;color:#fff}.match-screen .seat-details>span{color:#d5dce7;font-size:10px}.match-screen .home-progress{gap:5px;margin-top:6px}.match-screen .home-progress i{width:12px;height:12px;border:1px solid var(--seat);border-radius:50%;background:#0008;box-shadow:inset 0 1px 2px #0009}.match-screen .home-progress i.finished{background:var(--seat);box-shadow:inset 0 2px 2px #fff8}.match-screen .dice-dock{display:none}.match-screen .board-frame{padding:10px;border:4px solid #572704!important;border-radius:28px!important;background:linear-gradient(135deg,#fff2b4,#ad6213 18%,#ffd774 38%,#8e480c 65%,#ffe092);box-shadow:0 0 0 2px #e6a54d,0 8px 0 #48200a,0 13px 23px #0009!important}.match-screen .board-edge{padding:3px;border-radius:18px;background:#40200e}.match-screen .board{border-radius:15px}.match-screen .table-bottom{display:grid;grid-template-columns:1fr 160px 1fr;align-items:center;margin-top:22px;gap:13px}.match-screen .table-bottom .player-station{width:100%}.match-screen .table-bottom .player-seat{flex-direction:column!important;text-align:center!important;padding:9px 5px;gap:5px}.match-screen .table-bottom .seat-details{display:flex;flex-direction:column;align-items:center}#table-roll-dock{background:linear-gradient(145deg,#2d4660,#091a2d 60%,#030c18);border:3px solid #f1c85e;border-radius:30px;padding:13px 8px 9px;box-shadow:inset 0 0 0 3px #071420,0 5px 0 #291808,0 8px 18px #0008}.match-screen #table-roll-dock .dice-button{width:100%;gap:15px}.match-screen #table-roll-dock .dice-caption{white-space:normal;min-height:37px;display:grid;place-items:center;width:100%;padding:7px 4px;color:white;font-size:12px;letter-spacing:.3px;border:2px solid #ffde77;border-radius:13px;background:linear-gradient(#24e363,#00a638 55%,#007824);text-shadow:0 2px 1px #003611;box-shadow:inset 0 2px 2px #baffb8,0 3px 0 #004c20}.match-screen #table-roll-dock .dice-button:disabled .dice-caption{background:linear-gradient(#324c69,#142438);text-shadow:none}.match-screen .social-toolbar{justify-content:center;margin-top:18px}.match-screen .social-toolbar>span{color:#ffe2b9}.match-screen .audio-controls button{background:#111e30da;border-color:#bc975b;color:#f0ddba}.match-screen .table-note{color:#ffe2be}
@media(max-width:480px){#app.match-screen{padding:10px 10px 20px}.match-screen .table-heading{padding:9px 19px}.match-screen .table-heading>span{font-size:15px}.match-screen .player-station .player-seat{min-height:59px;padding:6px;gap:6px;border-width:2px;border-radius:16px}.match-screen .seat-avatar{width:42px;height:42px;font-size:28px}.match-screen .player-station .seat-details b{font-size:12px;max-width:95px}.match-screen .seat-details>span{font-size:8px}.match-screen .home-progress{gap:3px}.match-screen .home-progress i{width:9px;height:9px}.match-screen .board-frame{padding:6px;border-radius:20px!important}.match-screen .table-bottom{grid-template-columns:1fr 112px 1fr;gap:8px;margin-top:18px}#table-roll-dock{padding:10px 6px 8px;border-radius:23px}.match-screen #table-roll-dock .dice-caption{font-size:10px}.match-screen .table-bottom .player-seat{border-radius:16px}.match-screen .social-toolbar>span{font-size:7px}}
/* Active-player marker follows the current turn without moving the seat. */
.match-screen .player-station .player-seat.active{border-color:#ffe393;box-shadow:inset 0 0 0 1px var(--seat),0 0 0 2px var(--seat),0 0 24px #ffd45888,0 5px 10px #0006}
.match-screen .player-seat.active .seat-avatar{border-color:#fff3b9;box-shadow:0 0 0 3px var(--seat),0 0 0 5px #ffd65a,0 0 20px #ffd65a99;animation:seat-turn-glow 1.5s ease-in-out infinite}
.match-screen .seat-details>.seat-turn-label{display:inline-flex;align-items:center;justify-content:center;min-height:19px;padding:3px 5px;border-radius:7px;line-height:1;font-size:8px;letter-spacing:.35px;white-space:nowrap}
.match-screen .player-seat.active .seat-turn-label{background:linear-gradient(#fff2b3,#f6ba35);border:1px solid #fff3ba;color:#402600;font-weight:900;box-shadow:0 2px 4px #0005}
.match-screen .player-seat.active .seat-turn-label:before{content:'▶';font-size:7px;margin-right:4px}
@keyframes seat-turn-glow{50%{box-shadow:0 0 0 3px var(--seat),0 0 0 6px #ffe79d,0 0 27px #ffd65acc}}
@media(prefers-reduced-motion:reduce){.match-screen .player-seat.active .seat-avatar{animation:none}}
/* Winner celebration: finite animation with motion-accessible fallback. */
.winner-celebration.royal-victory{padding:24px 16px 26px;margin:10px 0 20px;border:2px solid #e5b451;border-radius:28px;background:radial-gradient(ellipse at 50% 35%,#6f4a18 0%,#192b48 45%,#080f22 85%);box-shadow:inset 0 0 0 4px #ffffff0c,0 14px 32px #0004;overflow:hidden;isolation:isolate}
.royal-victory .victory-rays{position:absolute;inset:-50%;z-index:0;pointer-events:none;background:repeating-conic-gradient(from 0deg,#ffdb6920 0deg 10deg,transparent 10deg 30deg);mask-image:radial-gradient(circle,#000,transparent 65%);animation:victory-rays 9s ease-out both}
.royal-victory .victory-congratulations{position:relative;z-index:2;color:#ffe99c;font-size:clamp(16px,5vw,25px);font-weight:950;letter-spacing:2px;text-shadow:0 3px 0 #674016,0 0 16px #ffc54988;animation:victory-title .65s ease-out both}
.royal-victory .victory-trophy{position:relative;z-index:2;font-size:53px;line-height:1.3;margin:7px auto 0;filter:drop-shadow(0 5px 4px #0006);animation:victory-title .85s ease-out both}
.royal-victory .crowned-avatar{z-index:2;margin-top:40px;margin-bottom:15px}
.royal-victory .winner-ribbon,.royal-victory h1,.royal-victory p{position:relative;z-index:2}
.royal-victory .winner-ribbon{font-size:10px;letter-spacing:1.5px;padding:9px 17px;max-width:100%}
.royal-victory h1{max-width:100%;overflow-wrap:anywhere;font-size:32px}.royal-victory p.muted{color:#e8dcc0}
.royal-victory .winner-confetti{inset:0;z-index:1;pointer-events:none}
.royal-victory .winner-confetti i{animation:royal-confetti 3s ease-in var(--delay) 2 both}
.royal-victory .winner-confetti i:nth-child(3n){border-radius:50%;width:8px;height:8px}.royal-victory .winner-confetti i:nth-child(4n){width:5px;height:17px}
@keyframes royal-confetti{0%{opacity:0;transform:translateY(-15px) rotate(0)}8%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translate(var(--drift),560px) rotate(680deg)}}
@keyframes victory-rays{from{transform:rotate(-35deg);opacity:0}15%{opacity:1}to{transform:rotate(30deg);opacity:.7}}
@keyframes victory-title{from{opacity:0;transform:translateY(12px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.royal-victory .victory-rays,.royal-victory .victory-congratulations,.royal-victory .victory-trophy{animation:none}.royal-victory .winner-confetti{display:none}.royal-victory .winner-confetti i{animation:none}}
.match-screen .table-heading>span,.match-screen .table-heading small,.match-screen .dice-caption,.match-screen .seat-turn-label,.royal-victory .victory-congratulations,.royal-victory .winner-ribbon{text-transform:none;letter-spacing:normal;font-style:normal}
.match-screen .table-heading>span,.match-screen .table-heading small,.royal-victory .victory-congratulations,.royal-victory .winner-ribbon{text-transform:capitalize}
