/* Domino Union: collectible player identities and a real, continuous table. */
:root{--du-teal:#00c4c8;--du-coral:#ff655a;--du-gold:#ffd070;--du-blue:#659aff}
.union-avatar{display:inline-flex;flex:0 0 auto;width:52px;height:52px;border-radius:50%;background-color:#0a1b30;background-image:url('assets/avatars-v4.png');background-size:200% 200%;border:2px solid #ffffff70;box-shadow:0 3px 0 #00182b33;vertical-align:middle;align-items:center;justify-content:center;color:white;font-weight:850;font-size:18px}
.avatar-teal{background-position:0 0}.avatar-coral{background-position:100% 0}.avatar-gold{background-position:0 100%}.avatar-blue{background-position:100% 100%}.avatar-initials{background-image:none;background-color:#0a525e}
.role-badges{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:7px 0}.role-badge{font-size:10px;line-height:1.4;letter-spacing:.03em;font-weight:800;display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:5px;color:#294a5b;background:#ecf0f3;position:relative;cursor:help;white-space:nowrap}.role-admin{background:#dce6ff;color:#1740a1}.role-player{background:#d8f5ed;color:#075d50}.role-team-leader{background:#ffe7aa;color:#623b00}.role-tooltip{display:none;position:absolute;z-index:30;bottom:calc(100% + 8px);left:0;width:210px;white-space:normal;text-align:left;background:#071a2d;color:white;padding:12px;border-radius:8px;box-shadow:0 8px 24px #0005;font-size:12px;line-height:1.5;letter-spacing:0}.role-badge:hover .role-tooltip,.role-badge:focus .role-tooltip{display:block}.role-badge:focus-visible{outline:3px solid #0a9ba5;outline-offset:3px}
.profile-avatar.union-avatar{width:126px;height:126px;margin:24px 0 12px;box-shadow:0 0 0 8px #ffffff12,0 10px 26px #0004;font-size:40px}.avatar-picker{border:0;padding:18px 0 24px;margin:10px 0;display:flex;gap:12px;flex-wrap:wrap}.avatar-picker legend{font-size:15px;font-weight:800;margin-bottom:10px}.avatar-picker label{display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;font-size:11px;font-weight:800;cursor:pointer}.avatar-picker input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.avatar-picker .union-avatar{width:64px;height:64px;border:3px solid transparent;box-shadow:none;transition:transform .2s,border-color .2s}.avatar-picker input:checked+.union-avatar{border-color:#007e88;box-shadow:0 0 0 3px #00bfc333;transform:translateY(-3px)}.avatar-picker input:focus-visible+.union-avatar{outline:3px solid #ff655a;outline-offset:3px}
.arena-table-wrap{position:relative}.table-topline,.table-bottomline{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px;padding:15px 6px;flex-wrap:wrap}.table-brand{font-size:13px;letter-spacing:.1em;font-weight:900}.table-brand b{font-size:9px;letter-spacing:.18em;color:#5b7180;margin-left:12px}.table-bottomline b{font-size:17px;margin-left:8px}.physical-table{position:relative;isolation:isolate;border-radius:44px;background:#062c3a;box-shadow:inset 0 0 0 9px #143242,inset 0 0 0 12px #31515a,inset 0 0 100px #001a26,0 18px 35px #06203526;min-height:420px;padding:103px 102px;background-image:radial-gradient(ellipse at 50% 35%,#0f5362,transparent 70%),repeating-linear-gradient(24deg,#ffffff02 0 1px,transparent 1px 4px)}
.table-surface{position:relative;display:flex;min-height:210px;align-items:center;justify-content:center}.table-watermark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:Anton,sans-serif;font-size:90px;color:#ffffff06;letter-spacing:-.06em;pointer-events:none;line-height:1}.table-watermark span{display:block;font-family:inherit;font-size:8px;letter-spacing:.3em;white-space:nowrap;color:#ffffff15}.physical-chain{display:block;width:100%;min-height:190px;max-width:100%;overflow:visible;position:relative;filter:drop-shadow(0 3px 2px #00121f77)}.table-tile{cursor:help;outline:none}.tile-shadow{fill:#baafa0}.tile-face{fill:#fff9e7;stroke:#eadfc9;stroke-width:1.1}.tile-divider{stroke:#c2b8a6;stroke-width:1}.table-pip{fill:#15314a}.table-tile .tile-face{stroke:var(--seat-color);stroke-width:1.6}.table-tile.last-play .tile-face{stroke-width:2.8;filter:drop-shadow(0 0 3px var(--seat-color))}.table-tile:hover .tile-face,.table-tile:focus .tile-face{stroke:white;stroke-width:3}.table-tile:focus{filter:drop-shadow(0 0 5px white)}
.tile-theme-festival .table-pip.pip-value-1{fill:#c4483e}.tile-theme-festival .table-pip.pip-value-2{fill:#007a84}.tile-theme-festival .table-pip.pip-value-3{fill:#2c61c0}.tile-theme-festival .table-pip.pip-value-4{fill:#a4770e}.tile-theme-festival .table-pip.pip-value-5{fill:#9451a8}.tile-theme-festival .table-pip.pip-value-6{fill:#0d6271}.tile-theme-teal .table-pip{fill:#007a84}.tile-theme-coral .table-pip{fill:#cb4c3d}.tile-theme-gold .table-pip{fill:#906300}.tile-theme-classic .table-pip{fill:#102b3a}
.seat-color-0{--seat-color:#00d4c8}.seat-color-1{--seat-color:#ff8175}.seat-color-2{--seat-color:#ffcf6e}.seat-color-3{--seat-color:#8caeff}.table-seat{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #ffffff19;border-radius:15px;background:#071b2cde;color:#fff;box-shadow:0 4px 12px #00152633;max-width:270px}.table-seat .union-avatar{width:49px;height:49px;border-color:var(--seat-color)}.seat-identity strong{display:block;font-size:14px;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat-identity>span,.seat-identity small{display:block;font-size:10px;color:#aac2ca;line-height:1.5}.seat-identity .country-flag{--country-flag-size:18px}.table-seat.is-turn{border-color:var(--seat-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--seat-color) 16%,transparent),0 5px 18px #00152633}.table-seat.is-winner{border-color:#ffd070}.turn-tag{font-size:7px;letter-spacing:.15em;background:var(--seat-color);color:#062035;padding:4px 6px;position:absolute;top:-8px;right:10px;border-radius:4px;font-weight:900}.position-north{top:15px;left:50%;transform:translateX(-50%)}.position-south{bottom:15px;left:50%;transform:translateX(-50%)}.position-west{top:50%;left:13px;transform:translateY(-50%);flex-direction:column;text-align:center;width:81px;padding:9px 5px}.position-east{top:50%;right:13px;transform:translateY(-50%);flex-direction:column;text-align:center;width:81px;padding:9px 5px}.position-west .seat-identity strong,.position-east .seat-identity strong{max-width:70px;white-space:normal;overflow-wrap:anywhere;font-size:11px}.table-seat .role-badges{margin:3px 0 0;gap:3px}.table-seat .role-badge{font-size:8px;padding:2px 3px}.position-west .role-badges,.position-east .role-badges{justify-content:center}.position-east .role-tooltip{left:auto;right:0}.table-seat .role-user{display:none}
.played-by{display:flex;gap:8px;flex-wrap:wrap;min-height:28px;margin:0 0 12px}.played-by>span{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:6px 9px;background:#fff;border:1px solid #dce5e7;border-radius:8px}.played-by i{width:8px;height:8px;border-radius:50%;background:var(--seat-color);box-shadow:0 0 0 1px #0002}.played-by b{font-weight:750}.played-by small{color:#6f818a}.physical-table .felt-empty{text-align:center;z-index:1;padding:20px 0;color:#bed0cf}.physical-table .felt-empty>span{font-size:42px;color:#c5e1da45;font-family:Anton,sans-serif;line-height:1.1}.physical-table .felt-empty p{font-size:12px;color:#c2d8db}.arena-rack{padding:22px 12px;border-radius:14px;background:linear-gradient(#e4e9e4,#f2f2e9);border-bottom:6px solid #bdc7bb}.arena-rack .tile-button{transition:transform .18s,box-shadow .18s}.arena-rack .tile-button:hover:not(:disabled){transform:translateY(-8px) rotate(-2deg)}.arena-rack .tile-button.selected{transform:translateY(-12px);filter:drop-shadow(0 6px 4px #0d243a33)}
.victory-card{display:flex;align-items:center;gap:20px;position:relative;overflow:hidden;padding:24px 28px;border-radius:20px;background:#081e31;color:white;margin:0 0 20px;background-image:radial-gradient(ellipse at 80% 0,#005765,transparent 65%);box-shadow:0 12px 30px #06203524}.victory-card .eyebrow{color:#ffd070;font-size:9px}.victory-card h3{font-family:Anton,sans-serif;text-transform:uppercase;font-size:34px;font-weight:400;margin:3px 0 5px;line-height:1.1}.victory-card p{color:#b4c8d0;margin:0;font-size:13px}.victory-trophy{font-size:54px;color:#ffd070;filter:drop-shadow(0 4px 0 #a36e1a)}.victory-ribbon{margin-left:auto;font-size:10px;letter-spacing:.15em;font-weight:850;color:#082331;background:#ffd070;padding:10px 16px;transform:rotate(-5deg);border-radius:4px}.table-confetti{position:absolute;z-index:20;inset:0;overflow:hidden;pointer-events:none;border-radius:24px;max-height:650px}.confetti-piece{position:absolute;top:-20px;width:9px;height:15px;background:#00c7c6;animation:confetti-fall 2.7s ease-out both}.confetti-piece:nth-child(4n+1){background:#ff655a}.confetti-piece:nth-child(4n+2){background:#ffd070;border-radius:50%;height:9px}.confetti-piece:nth-child(4n+3){background:#8caeff}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0);opacity:1}90%{opacity:1}100%{transform:translateY(620px) rotate(600deg);opacity:0}}#arena-game,#board-game,#room-content{position:relative}
.member-inbox{background:#eff5f2;border:1px solid #d8e4df;border-radius:18px;padding:24px;margin-bottom:26px}.member-inbox h2{font-size:26px;margin:0 0 10px}.member-inbox>p{font-size:14px}.inbox-notice{background:white;padding:22px;margin:16px 0;border-left:4px solid #f2b53b;border-radius:10px}.inbox-notice p{white-space:pre-wrap;overflow-wrap:anywhere}.inbox-notice small{display:block;margin:10px 0}.inbox-notice .text-link{margin-left:18px}
.control-banner{padding:32px;border-radius:20px;background:#081f32;color:white;display:flex;justify-content:space-between;align-items:center;background-image:radial-gradient(ellipse at right,#08676c,transparent 70%);margin-bottom:24px}.control-banner h2{font-family:Anton,sans-serif;font-size:40px;line-height:1.1;font-weight:400;margin:9px 0}.control-banner .eyebrow{color:#48ded5}.control-banner p{color:#bad2d7;max-width:580px;font-size:15px}.control-shield{font-size:80px;color:#f5c96c;margin:0 15px}.module-switches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0}.module-switch{display:flex;align-items:center;gap:10px;position:relative;cursor:pointer;padding:15px;border:1px solid #dae3e7;border-radius:12px;background:#f8faf8}.module-switch input{width:21px;height:21px;accent-color:#008c91;flex-shrink:0}.module-switch strong{display:block;font-size:14px}.module-switch small{display:block;font-size:11px;line-height:1.4;color:#607883;margin-top:4px}.module-switch:has(input:checked){border-color:#9bd3ca;background:#f0faf6}.control-ai{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.control-ai>div{flex:1}.control-search{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px}.control-search input{flex:1;min-width:130px}.control-search label{font-size:12px;font-weight:800}.control-search input,.control-search select,.control-member input,.control-member textarea,.control-member select,.delete-dialog input,.delete-dialog textarea{border:1px solid #c8d6dc;border-radius:8px;padding:10px;background:white;max-width:100%}.control-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.control-member{padding:20px;border:1px solid #dbe3e8;border-radius:15px;min-width:0}.control-member-heading{display:flex;gap:12px;align-items:center}.control-member h3{margin:0;font-size:17px;overflow-wrap:anywhere}.control-member small{display:block;color:#607580;font-size:11px}.control-member details{margin:18px 0}.control-member summary{font-size:13px;font-weight:750;cursor:pointer}.warning-form{padding-top:15px}.warning-form label,.delete-dialog label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:750;margin-bottom:14px}.warning-form textarea{min-height:100px}.control-member .actions{gap:12px}.control-member .plain-button{font-size:12px}.danger-button{color:#ab2d27;background:#fff1ed;border:1px solid #f2c3bb;border-radius:6px;padding:8px 10px;font-size:12px;cursor:pointer;font-weight:750}.control-pager{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:12px;margin:20px 0 0}.control-record{display:flex;align-items:center;gap:15px;justify-content:space-between;padding:18px 0;border-bottom:1px solid #e3e9e9}.control-record>div{min-width:0}.control-record h3{font-size:15px;margin:0 0 8px;overflow-wrap:anywhere}.control-record p{font-size:12px;overflow-wrap:anywhere}.control-record .actions{flex-shrink:0;max-width:45%;gap:10px}.control-record .plain-button{text-transform:capitalize;font-size:11px}.delete-dialog{max-width:560px;width:calc(100% - 32px);border:0;border-radius:18px;padding:30px;color:#102b3a;box-shadow:0 20px 70px #0004}.delete-dialog::backdrop{background:#031728b8;backdrop-filter:blur(5px)}.delete-dialog h2{font-size:25px;overflow-wrap:anywhere}.delete-dialog ul{font-size:14px;line-height:1.6;padding-left:20px}.delete-dialog li{margin-bottom:10px}.delete-dialog .danger-button{background:#b8362b;color:white}
.rankings-section{padding-block:40px 75px}.ranking-toolbar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:20px}.ranking-toolbar label{font-weight:800}.ranking-toolbar select{padding:12px 18px;border:1px solid #c8d5dc;border-radius:9px;background:white}.ranking-method{font-size:14px;color:#5b7280;max-width:800px}.ranking-table{overflow-x:auto;border:1px solid #d9e3e5;border-radius:18px;background:white;margin-top:25px}.ranking-table table{width:100%;border-collapse:collapse;font-size:14px}.ranking-table th,.ranking-table td{padding:19px 22px;text-align:left;border-bottom:1px solid #edf0ee}.ranking-table thead{background:#0a2537;color:#c9d9e0;font-size:11px;text-transform:uppercase;letter-spacing:.07em}.ranking-table tbody tr:first-child{background:#fff9e8}.rank-person{display:flex;align-items:center;gap:14px;min-width:190px}.rank-number{font-family:Anton,sans-serif;font-size:25px;color:#b47c11}.rank-person .role-badges{margin-bottom:0}.paused-feature{text-align:center;padding:80px 25px;max-width:700px;margin:auto}.paused-feature h1{font-size:40px}.paused-feature p{color:#627c88}
@media(max-width:1000px){.control-members{grid-template-columns:1fr}.physical-table{padding-inline:92px}.module-switches{grid-template-columns:1fr}.table-seat .role-badge{font-size:7px}}
@media(max-width:600px){.physical-table{padding:95px 43px;border-radius:28px;min-height:410px;box-shadow:inset 0 0 0 5px #173948,inset 0 0 0 7px #35575c,inset 0 0 70px #001824,0 13px 28px #06203522}.table-seat{padding:6px 8px;gap:7px;border-radius:10px;max-width:240px}.table-seat .union-avatar{width:37px;height:37px}.position-north{top:13px}.position-south{bottom:13px}.position-west,.position-east{width:43px;padding:6px 3px;gap:6px}.position-west{left:4px}.position-east{right:4px}.position-west .union-avatar,.position-east .union-avatar{width:31px;height:31px}.position-west .seat-identity strong,.position-east .seat-identity strong{font-size:9px;max-width:37px}.position-west .seat-identity>span,.position-east .seat-identity>span{font-size:8px}.position-west .seat-identity small,.position-east .seat-identity small{font-size:8px}.position-west .role-badges,.position-east .role-badges{display:none}.seat-identity strong{font-size:12px;max-width:160px}.turn-tag{font-size:6px;right:4px;padding:3px}.physical-chain{min-height:210px}.table-topline,.table-bottomline{font-size:10px;gap:8px;padding-block:12px}.table-brand{font-size:10px}.table-brand b{display:none}.table-bottomline b{font-size:14px}.physical-table .felt-empty>span{font-size:28px}.physical-table .felt-empty p{font-size:10px}.played-by>span{font-size:10px;padding:5px 7px}.arena-rack{padding-inline:7px}.victory-card{padding:19px 16px;gap:12px}.victory-card h3{font-size:25px}.victory-trophy{font-size:40px}.victory-ribbon{display:none}.control-banner{padding:24px}.control-banner h2{font-size:32px}.control-shield{display:none}.control-search{align-items:stretch}.control-search label{width:100%}.control-record{align-items:flex-start;flex-direction:column}.control-record .actions{max-width:100%}.control-pager{flex-wrap:wrap}.rank-person .union-avatar{width:40px;height:40px}.ranking-table th,.ranking-table td{padding:14px}.member-inbox{padding:19px}.inbox-notice .text-link{display:block;margin:12px 0 0}.avatar-picker{gap:10px}.avatar-picker .union-avatar{width:53px;height:53px}.avatar-picker label{font-size:10px}}
@media(prefers-reduced-motion:reduce){.table-confetti{display:none}.avatar-picker .union-avatar,.arena-rack .tile-button{transition:none!important;transform:none!important}}
.a11y-no-motion .table-confetti{display:none}.a11y-no-motion .avatar-picker .union-avatar,.a11y-no-motion .arena-rack .tile-button{transition:none!important;transform:none!important}.a11y-contrast .seat-identity>span,.a11y-contrast .seat-identity small{color:white}.a11y-contrast .table-tile .tile-face{stroke:#000;stroke-width:2}.a11y-large .control-member p,.a11y-large .ranking-method,.a11y-large .table-history p{font-size:18px}

.roster-identity{display:flex;gap:10px;align-items:center}.roster-identity .union-avatar{width:36px;height:36px}.ai-task-switches{border:1px solid #d1dedf;border-radius:12px;padding:14px;margin:20px 0}.ai-task-switches legend{font-size:13px;font-weight:800}.ai-task-switches .check-item{font-size:13px;margin:8px 0}
@media(max-width:600px){.physical-table:not(:has(.position-west)){padding-inline:20px}.position-west .role-badges,.position-east .role-badges{display:flex}.position-west .role-badge,.position-east .role-badge{display:none}.position-west .role-team-leader,.position-east .role-team-leader{display:inline-flex;font-size:0}.position-west .role-team-leader>span:first-child,.position-east .role-team-leader>span:first-child{font-size:10px}}
.confetti-0{left:0%;animation-delay:0s;animation-duration:2.2s}
.confetti-1{left:37%;animation-delay:0.13s;animation-duration:2.3000000000000003s}
.confetti-2{left:74%;animation-delay:0.26s;animation-duration:2.4000000000000004s}
.confetti-3{left:12%;animation-delay:0.39s;animation-duration:2.5s}
.confetti-4{left:49%;animation-delay:0.52s;animation-duration:2.6s}
.confetti-5{left:86%;animation-delay:0.1s;animation-duration:2.7s}
.confetti-6{left:24%;animation-delay:0.23s;animation-duration:2.8000000000000003s}
.confetti-7{left:61%;animation-delay:0.36s;animation-duration:2.2s}
.confetti-8{left:98%;animation-delay:0.49s;animation-duration:2.3000000000000003s}
.confetti-9{left:36%;animation-delay:0.07s;animation-duration:2.4000000000000004s}
.confetti-10{left:73%;animation-delay:0.2s;animation-duration:2.5s}
.confetti-11{left:11%;animation-delay:0.33s;animation-duration:2.6s}
.confetti-12{left:48%;animation-delay:0.46s;animation-duration:2.7s}
.confetti-13{left:85%;animation-delay:0.04s;animation-duration:2.8000000000000003s}
.confetti-14{left:23%;animation-delay:0.17s;animation-duration:2.2s}
.confetti-15{left:60%;animation-delay:0.3s;animation-duration:2.3000000000000003s}
.confetti-16{left:97%;animation-delay:0.43s;animation-duration:2.4000000000000004s}
.confetti-17{left:35%;animation-delay:0.01s;animation-duration:2.5s}
.confetti-18{left:72%;animation-delay:0.14s;animation-duration:2.6s}
.confetti-19{left:10%;animation-delay:0.27s;animation-duration:2.7s}
.confetti-20{left:47%;animation-delay:0.4s;animation-duration:2.8000000000000003s}
.confetti-21{left:84%;animation-delay:0.53s;animation-duration:2.2s}
.confetti-22{left:22%;animation-delay:0.11s;animation-duration:2.3000000000000003s}
.confetti-23{left:59%;animation-delay:0.24s;animation-duration:2.4000000000000004s}
.confetti-24{left:96%;animation-delay:0.37s;animation-duration:2.5s}
.confetti-25{left:34%;animation-delay:0.5s;animation-duration:2.6s}
.confetti-26{left:71%;animation-delay:0.08s;animation-duration:2.7s}
.confetti-27{left:9%;animation-delay:0.21s;animation-duration:2.8000000000000003s}
.confetti-28{left:46%;animation-delay:0.34s;animation-duration:2.2s}
.confetti-29{left:83%;animation-delay:0.47s;animation-duration:2.3000000000000003s}
.confetti-30{left:21%;animation-delay:0.05s;animation-duration:2.4000000000000004s}
.confetti-31{left:58%;animation-delay:0.18s;animation-duration:2.5s}
.confetti-32{left:95%;animation-delay:0.31s;animation-duration:2.6s}
.confetti-33{left:33%;animation-delay:0.44s;animation-duration:2.7s}
.confetti-34{left:70%;animation-delay:0.02s;animation-duration:2.8000000000000003s}
.confetti-35{left:8%;animation-delay:0.15s;animation-duration:2.2s}
.confetti-36{left:45%;animation-delay:0.28s;animation-duration:2.3000000000000003s}
.confetti-37{left:82%;animation-delay:0.41s;animation-duration:2.4000000000000004s}
.confetti-38{left:20%;animation-delay:0.54s;animation-duration:2.5s}
.confetti-39{left:57%;animation-delay:0.12s;animation-duration:2.6s}
.confetti-40{left:94%;animation-delay:0.25s;animation-duration:2.7s}
.confetti-41{left:32%;animation-delay:0.38s;animation-duration:2.8000000000000003s}
.table-watermark,.physical-table .felt-empty>span,.victory-card h3,.control-banner h2,.rank-number{font-family:var(--display)}
