@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap";:root{font-family:DM Sans,system-ui,sans-serif;color:#243c3d;background:#edf1ef;font-synthesis:none;font-weight:400;--green:#244c50;--ink:#213b3d;--muted:#748581;--line:#dce3df;--accent:#c5dfbf}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 0 0,#e5ece7,transparent 60%),#f2f3ef}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #ceac61;outline-offset:4px}button svg{width:19px;height:19px;flex-shrink:0}button,a{color:inherit}.shell{max-width:1480px;margin:auto;padding:0 42px 24px}.topbar{height:100px;display:flex;align-items:center;gap:32px;border-bottom:1px solid #dce3df}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-family:Manrope,system-ui,sans-serif;font-weight:800;font-size:36px;letter-spacing:-2px}.brand-dot{color:#7d9d7d}.brand-mark{display:block;width:19px;transform:rotate(-15deg)}.brand-mark .domino-face{filter:none}.tagline{color:#82908a;font-size:12px;letter-spacing:.2px}.header-actions{margin-left:auto;display:flex;gap:10px;align-items:center}.icon-button{width:38px;height:38px;border:0;background:transparent;border-radius:50%;display:grid;place-items:center}.icon-button:hover{background:#dde5df}.button{border:0;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:10px 17px;border-radius:9px;font-size:12px;font-weight:600;transition:background .16s,transform .16s}.button:hover:not(:disabled){transform:translateY(-1px)}.primary{background:#2b5453;color:#fff}.primary:hover{background:#386561}.secondary{background:#e7ece7;border:1px solid #d8e0d8}.secondary:hover:not(:disabled){background:#dae5db}.button:disabled{opacity:.38}.new-game{margin-left:10px}.table-heading{display:flex;justify-content:space-between;align-items:end;margin:29px 0 21px}.eyebrow{font-size:9px;letter-spacing:2.2px;font-weight:650}.table-heading .eyebrow{color:#82958b}h1{font:650 32px/1.1 Manrope,system-ui,sans-serif;letter-spacing:-1.5px;margin:8px 0 0}.match-meta{display:flex;align-items:center;gap:20px;font-size:11px;color:#7f8b83}.match-meta span:first-child{font-size:9px;letter-spacing:1.5px;font-weight:650}.match-meta span+span:before{content:"·";margin-right:20px;color:#acb7ad}.table{position:relative;background:#244c50;border-radius:20px;color:#e7eee5;box-shadow:inset 0 0 70px #163e4040,0 15px 40px #283d3710;overflow:hidden;border:1px solid #1b4245}.table-grain{position:absolute;inset:0;pointer-events:none;opacity:.12;background-image:radial-gradient(#d5e5d5 .55px,transparent .55px);background-size:4px 4px}.glass{background:#f9fbf6d9;border:1px solid #ffffff9c;box-shadow:0 8px 28px #1c3d3510;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.opponents{position:relative;display:flex;justify-content:center;gap:16px;padding:24px 24px 0;z-index:1}.opponent{display:flex;align-items:center;gap:11px;min-width:230px;padding:11px 17px;border-radius:12px;color:#273f3c;position:relative;background:#ebf1e816;border-color:#e1eed51c;box-shadow:none;color:#e5eee4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.opponent.active{border-color:#bbd7acb0;background:#e7f3dc25;box-shadow:0 0 0 3px #c8dfbc07}.avatar{width:35px;height:35px;border-radius:50%;background:#e3eddc1c;display:grid;place-items:center;font-size:13px;font-family:Manrope,sans-serif;font-weight:600;color:#dbe8d3;border:1px solid #f1f5db17;flex-shrink:0}.opponent-info{display:flex;flex-direction:column;gap:5px}.opponent-info strong{font-size:12px;font-weight:550}.opponent-info span{font-size:9px;color:#b6c9be;text-transform:capitalize}.opponent-score{font:600 22px/1 Manrope,sans-serif;margin-left:auto;padding-left:20px}.opponent-score small{font-family:DM Sans,sans-serif;font-size:9px;font-weight:400;color:#abc2b4}.active-dot{position:absolute;right:9px;top:9px;width:5px;height:5px;background:#cde4b8;border-radius:50%}.table-topline{display:flex;align-items:center;justify-content:space-between;padding:20px 27px 3px;position:relative;font-size:10px;color:#a5beb2}.table-caption{font-size:8px;letter-spacing:1.7px;display:flex;align-items:center;gap:10px}.table-caption i{display:block;width:3px;height:3px;background:#a5beb2;border-radius:50%}.yard-count{display:flex;align-items:center;gap:9px}.yard-count b{font-size:11px;font-weight:500;color:#e2ecdf;background:#ffffff0d;border:1px solid #ffffff0c;border-radius:5px;padding:4px 7px}.mini-stack{display:inline-block;width:11px;height:17px;border:1px solid #a4bdb1;border-radius:2px;box-shadow:3px -2px 0 -1px #244c50,3px -2px #a4bdb180;margin-right:4px}.board-scroll{position:relative;overflow:auto;height:340px;scrollbar-color:#9db6aa55 transparent;scrollbar-width:thin}.board-canvas{position:relative;margin:0 auto}.connections{position:absolute;inset:0;overflow:visible}.connections path{fill:none;stroke:#b8d0bd66;stroke-width:2;stroke-linejoin:round}.connections text{fill:#a1bcb0;font-size:9px}.board-tile{position:absolute;width:90px;height:44px;z-index:1;filter:drop-shadow(0 5px 3px #0b292f50)}.domino-face{width:100%;height:100%;display:block}.spinner-label{display:block;text-align:center;font-size:7px;letter-spacing:1.5px;color:#b4cda8;position:absolute;top:51px;left:0;right:0}.board-tile.spinner:before{content:"";position:absolute;inset:-4px;border:1px solid #c6dbb454;border-radius:9px}.endpoint{position:absolute;z-index:2;background:#2d5658;color:#b7cabc;border:1px solid #8caf9f55;height:34px;min-width:34px;padding:0 9px;border-radius:17px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:12px}.endpoint:disabled{opacity:.7}.endpoint.available{background:#c7dfb8;color:#284d43;border-color:#ebf4c9;box-shadow:0 0 0 4px #d6e8b912;animation:end-in .2s ease}.endpoint.available:hover{background:#e1efcd;transform:scale(1.06)}.endpoint svg{width:13px;height:13px}.endpoint em{position:absolute;top:-21px;font-size:11px;font-style:normal;color:#e8f2d4;white-space:nowrap}.empty-table{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;text-align:center}.empty-mark{width:73px;opacity:.2;transform:rotate(-12deg);margin-bottom:10px}.empty-table h2{font:500 20px Manrope,sans-serif;letter-spacing:-.6px;color:#d3e1d3;margin:10px}.empty-table p{font-size:11px;color:#9db9ac;margin:3px}.table-bottomline{display:flex;align-items:center;justify-content:space-between;min-height:65px;padding:12px 28px 18px;position:relative;gap:12px}.exposed{display:flex;gap:16px;align-items:center}.exposed .eyebrow{font-size:7px;letter-spacing:1.5px;color:#9bb7aa}.end-equation{font-size:12px;color:#cfddcd}.end-equation>span{margin:0 6px;color:#8da99b}.end-equation strong{font-size:15px;font-weight:500;color:#e0edce}.board-tip{font-size:9px;color:#8fae9d}.score-flash{font:600 16px Manrope,sans-serif;color:#d9edbd;animation:score-in .4s ease}.hand-panel{position:relative;border-radius:16px;margin:16px 0 0;padding:17px 23px 14px}.hand-heading{display:flex;align-items:center;justify-content:space-between}.you-label{display:flex;gap:10px;align-items:center}.avatar.you{background:#e1e8dd;color:#5e7b64;border-color:#d4dfd1;width:34px;height:34px;font-size:12px}.you-label>div{display:flex;flex-direction:column;gap:4px}.you-label strong{font-size:12px;font-weight:600;display:flex;align-items:center;gap:10px}.you-label>div>span{font-size:9px;color:#859487}.turn-badge{font-size:7px;letter-spacing:1px;color:#5e7a53;background:#e4eddc;border-radius:4px;padding:3px 6px;font-weight:650}.your-score{font:600 27px/1 Manrope,sans-serif;letter-spacing:-1px}.your-score>span{font:400 11px DM Sans,sans-serif;color:#8a988d;letter-spacing:0}.hand-tiles{display:flex;justify-content:center;gap:12px;overflow-x:auto;padding:21px 8px 16px;scrollbar-width:thin;min-height:132px}.hand-tile{flex:0 0 43px;width:43px;height:88px;padding:0;border:0;border-radius:6px;background:transparent;position:relative;filter:drop-shadow(0 4px 3px #33452a20);transition:transform .18s,filter .18s}.hand-tile:disabled{opacity:.55;filter:none}.hand-tile.legal{cursor:pointer}.hand-tile.legal:hover{transform:translateY(-5px);filter:drop-shadow(0 7px 5px #33452a25)}.hand-tile.selected{transform:translateY(-8px);outline:2px solid #6b9676;outline-offset:4px;filter:drop-shadow(0 8px 5px #33452a25)}.playable-dot{position:absolute;bottom:-10px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#88a987}.turn-controls{border-top:1px solid #dfe6dc;display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:12px}.turn-hint{font-size:11px;color:#7b8d7c;margin:0;line-height:1.6}.play-controls{display:flex;gap:7px}.play-controls .button{min-height:32px;font-size:10px;padding:7px 14px}.play-controls .button span{font-size:9px;opacity:.6}.footer{display:flex;align-items:center;justify-content:space-between;padding:18px 3px 0;color:#8a978b;font-size:9px}.save-note,.text-button,.assist-label{display:flex;align-items:center;gap:6px}.save-note svg,.text-button svg{width:13px;height:13px}.text-button{border:0;background:transparent;color:#718873;font-size:9px}.assist-label{gap:7px}.assist-label input{width:12px;height:12px;accent-color:#65866a;margin:0}.round-overlay{position:absolute;inset:90px 0 45px;display:flex;align-items:center;justify-content:center;background:#163a3d65;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:5}.round-card{max-width:370px;border-radius:17px;padding:30px;text-align:center;color:#2b4741}.round-card .eyebrow{font-size:9px;color:#7d9479}.round-card h2{font:600 26px Manrope,sans-serif;letter-spacing:-1px}.round-card p{font-size:12px;line-height:1.7;color:#6a806c}.error{background:#fff1e5;border:1px solid #dfc5a9;border-radius:10px;padding:15px;margin-top:15px;font-size:12px;color:#79573b}.debug{font-size:11px;background:#e6ece4;padding:15px;margin-top:15px;border-radius:10px}.debug p{font-size:10px;color:#687a66}dialog{width:470px;max-width:calc(100vw - 30px);max-height:85dvh;border:1px solid #fff;border-radius:20px;padding:28px;background:#f5f7f0f5;color:#28433c;box-shadow:0 30px 100px #102d3966;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}dialog::backdrop{background:#183d4266;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.modal-heading h2{font:600 23px Manrope,sans-serif;letter-spacing:-.8px;margin:0}.modal-intro{font-size:12px;color:#82907e;line-height:1.6;margin:0 0 24px}form>label,.form-row>label,.seed-setting label{display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:550;margin:17px 0}input[type=number],select{padding:12px;border-radius:8px;border:1px solid #d5dfd0;background:#ffffffa0;color:#38513e;width:100%;font-size:12px}select{text-transform:capitalize}.form-row{display:flex;gap:14px}.form-row>label{flex:1;min-width:0}.field-note{font-size:10px;line-height:1.7;color:#82917d;margin:8px 0 15px}.full{width:100%;margin-top:10px}.target-presets{display:flex;justify-content:flex-end;gap:7px;margin-top:-5px}.target-presets button{border:1px solid #d6dfd1;background:#e9eee4;border-radius:5px;padding:4px 10px;font-size:10px}.seed-setting{font-size:10px;color:#7b8c74;margin:20px 0}.seed-setting summary{cursor:pointer}.check-row{flex-direction:row;align-items:center;gap:10px!important;font-size:12px}input[type=checkbox]{accent-color:#5c7f61}.rules-copy{font-size:12px;line-height:1.8;color:#667d65}.rules-copy h3{font:650 14px Manrope,sans-serif;color:#2b4d3d;margin:23px 0 7px}.rules-copy p{margin:8px 0}.history-list{padding-left:22px;font-size:12px;line-height:1.8;color:#637b62}.history-list li{padding:8px 0;border-bottom:1px solid #dfe6d9}@keyframes score-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes end-in{0%{opacity:.4;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@supports not (backdrop-filter:blur(1px)){.glass{background:#f1f4ec}.opponent{background:#365e5d}.round-overlay{background:#224b4cea}dialog{background:#f5f7f0}}@media(min-width:1550px){.board-scroll{height:410px}}@media(max-width:1000px){.shell{padding:0 24px 20px}.tagline{display:none}.opponent{min-width:190px;padding:10px 13px}.opponents{gap:10px}.opponent-score{padding-left:8px;font-size:20px}.opponent-score small{display:none}.board-scroll{height:330px}.match-meta{gap:12px}.match-meta span+span:before{margin-right:12px}}@media(max-width:700px){.shell{padding:0 14px 18px}.topbar{height:76px;gap:10px}.brand{font-size:30px;gap:9px}.brand-mark{width:16px}.header-actions{gap:3px}.new-game{margin-left:4px;padding:9px 10px;font-size:10px;min-height:34px}.icon-button{width:32px;height:32px}.icon-button svg{width:17px;height:17px}.table-heading{margin:23px 0 17px}.table-heading .eyebrow{font-size:7px;letter-spacing:1.6px}h1{font-size:27px}.match-meta{gap:5px;flex-direction:column;align-items:end;font-size:9px}.match-meta span:first-child{font-size:8px}.match-meta span+span:before{content:none}.table{border-radius:14px}.opponents{padding:15px 12px 0;gap:7px}.opponent{min-width:0;flex:1;max-width:230px;gap:8px;padding:10px}.opponent-info strong{font-size:10px}.opponent-info span{font-size:8px}.opponent .avatar{width:27px;height:27px;font-size:10px}.opponent-score{font-size:18px;padding-left:2px}.table-topline{padding:17px 17px 3px;font-size:9px}.table-caption{font-size:7px;letter-spacing:1px;gap:6px}.yard-count{gap:5px}.board-scroll{height:315px}.table-bottomline{padding:12px 17px;min-height:58px}.exposed{gap:8px}.exposed .eyebrow{font-size:6px;letter-spacing:1px}.end-equation{font-size:10px}.end-equation strong{font-size:13px}.board-tip{display:none}.score-flash{font-size:12px}.hand-panel{padding:15px 16px 13px;margin-top:12px;border-radius:13px}.hand-tiles{gap:10px;justify-content:safe center;padding:20px 5px 17px;min-height:128px}.hand-tile{flex-basis:40px;width:40px;height:82px}.turn-controls{align-items:flex-start;gap:10px}.turn-hint{font-size:10px;max-width:58%}.play-controls .button{padding:7px 11px;white-space:nowrap;font-size:9px}.footer{font-size:8px;gap:12px;flex-wrap:wrap;padding-top:15px}.text-button,.assist-label,.save-note{font-size:8px}.round-card{max-width:calc(100% - 35px);padding:25px}.round-card h2{font-size:23px}.round-overlay{inset:80px 0 30px}}@media(max-width:430px){.opponents:has(.opponent:nth-child(3)) .opponent{flex-direction:column;gap:5px;padding:9px 5px}.opponents:has(.opponent:nth-child(3)) .avatar{display:none}.opponents:has(.opponent:nth-child(3)) .opponent-info{text-align:center;gap:4px}.opponents:has(.opponent:nth-child(3)) .opponent-score{margin:0;font-size:17px}.board-scroll{height:285px}.header-actions{gap:0}.new-game span{display:none}.new-game{padding:7px;width:32px}.footer .save-note{order:3;width:100%;justify-content:center}.exposed{flex-wrap:wrap}.hand-tiles{justify-content:flex-start}.hand-tile{flex-basis:38px;width:38px;height:78px}.your-score{font-size:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.table-body{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;grid-template-areas:"left top right" "left board right";gap:10px 14px;padding:6px 20px 0}.seat{display:flex;min-width:0}.seat-top{grid-area:top;justify-content:center}.seat-left{grid-area:left;align-items:center}.seat-right{grid-area:right;align-items:center}.table-body .board-scroll{grid-area:board;min-width:0;height:440px;border-radius:14px}.opponent{flex-wrap:wrap;row-gap:9px}.opponent-id{display:flex;align-items:center;gap:11px;min-width:0}.tile-backs{flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px}.tile-backs i{display:block;width:9px;height:16px;border-radius:2px;background:#e8efe3d9;box-shadow:inset 0 0 0 1px #ffffff60,0 1px 2px #0b292f40}.seat-top .opponent{min-width:250px}.seat-top .tile-backs{justify-content:center}.seat-left .opponent,.seat-right .opponent{flex-direction:column;align-items:center;width:124px;min-width:0;padding:15px 10px;text-align:center}.seat-left .opponent-id,.seat-right .opponent-id{flex-direction:column;gap:7px}.seat-left .opponent-info,.seat-right .opponent-info{align-items:center}.seat-left .opponent-score,.seat-right .opponent-score{margin:0;padding:0}.seat-left .tile-backs,.seat-right .tile-backs{display:grid;grid-template-columns:repeat(2,17px);justify-content:center;gap:4px}.seat-left .tile-backs i,.seat-right .tile-backs i{width:17px;height:9px}.board-canvas{position:relative;margin:0}.board-tile{position:absolute;z-index:1;width:auto;height:auto;filter:drop-shadow(0 2px 1.5px #0b292f55)}.board-tile.spinner:before{inset:-3px;border-radius:7px;border-color:#d8e8c478}.endpoint{translate:-50% -50%;width:calc(var(--u)*.84);height:calc(var(--u)*.84);min-width:0;padding:0;border-radius:50%;gap:1px;font-size:max(10px,calc(var(--u)*.34));background:#2d565880;border-color:#8caf9f40;color:#b7cabc}.endpoint:disabled{opacity:.55;scale:.72}.endpoint.available{background:#c7dfb8;color:#284d43;z-index:3}.endpoint.available:hover{transform:none;scale:1.08}.endpoint svg{width:max(8px,calc(var(--u)*.26));height:max(8px,calc(var(--u)*.26))}.endpoint em{top:auto;bottom:calc(100% + 3px)}@media(min-width:1550px){.table-body .board-scroll{height:500px}}@media(max-width:1000px){.table-body{gap:8px 10px;padding:6px 14px 0}.seat-left .opponent,.seat-right .opponent{width:104px}.seat-top .opponent{min-width:210px}.table-body .board-scroll{height:420px}}@media(max-width:700px){.table-body{grid-template-columns:1fr auto 1fr;grid-template-areas:"left top right" "board board board";gap:8px 6px;padding:4px 10px 0}.seat-left{justify-content:flex-start}.seat-right{justify-content:flex-end}.seat-left,.seat-right{align-items:stretch}.seat-left .opponent,.seat-right .opponent,.seat-top .opponent{width:auto;min-width:0;max-width:none;flex:0 1 auto;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;padding:7px 9px;gap:6px;row-gap:5px;text-align:left}.seat-left .opponent-id,.seat-right .opponent-id,.seat-top .opponent-id{flex-direction:row;gap:6px}.table-body .avatar{width:22px;height:22px;font-size:9px}.table-body .opponent-info span{display:none}.table-body .opponent-info strong{font-size:10px}.table-body .opponent-score{font-size:15px;margin:0;padding:0}.table-body .opponent-score small{display:none}.table-body .tile-backs,.seat-left .tile-backs,.seat-right .tile-backs{display:flex;flex-basis:100%;justify-content:center;gap:2px}.table-body .tile-backs i,.seat-left .tile-backs i,.seat-right .tile-backs i{width:5px;height:9px}.table-body .board-scroll{height:430px}}@media(max-width:430px){.table-body .board-scroll{height:400px}.table-body .opponent-info strong{font-size:9px}}.table>.round-overlay{inset:0;border-radius:inherit}.fly-layer{position:fixed;inset:0;pointer-events:none;z-index:60}.flyer{position:fixed;will-change:transform;perspective:700px;filter:drop-shadow(0 12px 10px #0b292f55)}.fly-card{position:relative;width:100%;height:100%;transform-style:preserve-3d}.fly-face,.fly-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}.fly-face>svg,.fly-face .domino-face{width:100%;height:100%;display:block}.fly-face .playable-dot{display:none}.fly-back{transform:rotateY(180deg)}.back-face,.tile-backs i{display:block;box-sizing:border-box;border-radius:4px;border:1.5px solid #efe9d8;background:radial-gradient(circle at 50% 50%,#d6c08a 0 1.4px,transparent 1.9px),linear-gradient(150deg,#3a7a73,#1d4847 70%);box-shadow:0 2px 3px #0b292f59,inset 0 1px #ffffff26}.fly-face .back-face{position:absolute;inset:0}.tile-backs{position:relative}.tile-backs i{flex:none;transition:transform .25s}.hand-count{position:absolute;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#e9f1e2;color:#244c50;font:700 10px/18px Manrope,sans-serif;text-align:center;box-shadow:0 2px 4px #0b292f40}.seat-top .tile-backs{display:flex;justify-content:center;align-items:flex-start;padding:2px 14px 10px}.seat-top .tile-backs i{width:16px;height:30px;margin-left:-5px;transform-origin:50% 0;transform:rotate(calc((var(--i) - (var(--n) - 1) / 2) * -4.5deg))}.seat-top .tile-backs i:first-child{margin-left:0}.seat-top .hand-count{right:-6px;top:-4px}.seat-left .tile-backs,.seat-right .tile-backs{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 6px;gap:0}.seat-left .tile-backs i,.seat-right .tile-backs i{width:30px;height:16px;margin-top:-5px}.seat-left .tile-backs i:first-child,.seat-right .tile-backs i:first-child{margin-top:0}.seat-left .tile-backs i{transform-origin:0 50%;transform:rotate(calc((var(--i) - (var(--n) - 1) / 2) * 4.5deg))}.seat-right .tile-backs i{transform-origin:100% 50%;transform:rotate(calc((var(--i) - (var(--n) - 1) / 2) * -4.5deg))}.seat-left .hand-count{right:-8px;top:2px}.seat-right .hand-count{left:-8px;top:2px}.opponent.active .tile-backs i{border-color:#fff8e4}@media(max-width:700px){.table-body .seat-top .tile-backs{flex-basis:auto;display:flex;flex-direction:row;padding:0 9px 3px 0}.table-body .seat-top .tile-backs i{width:8px;height:15px;margin-left:-3px;border-width:1px;border-radius:2px}.table-body .seat-top .tile-backs i:first-child{margin-left:0}.table-body .seat-left .tile-backs,.table-body .seat-right .tile-backs{flex-basis:auto;display:flex;flex-direction:column;padding:3px 4px}.table-body .seat-left .tile-backs i,.table-body .seat-right .tile-backs i{width:15px;height:8px;margin:-3px 0 0;border-width:1px;border-radius:2px}.table-body .seat-left .tile-backs i:first-child,.table-body .seat-right .tile-backs i:first-child{margin-top:0}.table-body .hand-count{min-width:14px;height:14px;line-height:14px;font-size:8px;padding:0 3px}.table-body .seat-top .hand-count{right:-6px;top:-5px}.table-body .seat-left .hand-count{right:-9px;top:-5px}.table-body .seat-right .hand-count{left:-9px;top:-5px}}.board-tile.last-played:after{content:"";position:absolute;inset:-3px;border-radius:6px;box-shadow:0 0 0 2px #e3cf98cc,0 0 14px #e3cf9866;pointer-events:none;animation:last-in .9s ease-out both}@keyframes last-in{0%{opacity:0}35%{opacity:1;box-shadow:0 0 0 3px #f1e0aee6,0 0 20px #e3cf9899}to{opacity:1}}.shell{min-height:100dvh;display:flex;flex-direction:column;padding-bottom:10px}.topbar{height:64px;flex:none}.table{flex:1 1 auto;display:flex;flex-direction:column;min-height:560px;margin-top:10px}.table-topline{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:12px 22px 2px}.table-topline .yard-count{justify-self:end}.table-topline .exposed{display:flex;align-items:center;gap:12px;justify-self:center}.table-topline .score-flash{min-width:60px;font-size:13px}.table-body{flex:1 1 auto;min-height:0;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"left top right" "left board right" "bottom bottom bottom";padding-bottom:12px}.table-body .board-scroll{height:auto!important;min-height:220px}.seat-bottom{grid-area:bottom;justify-content:center}.seat-bottom .hand-panel{position:relative;margin:0;display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr);align-items:center;gap:14px;width:100%;max-width:1180px;padding:8px 16px;border-radius:14px;background:#ebf1e810;border:1px solid #e1eed51c;color:#e5eee4;box-shadow:none}.seat-bottom .hand-panel.active{border-color:#bbd7acb0;background:#e7f3dc1c}.seat-bottom .you-label{position:relative}.seat-bottom .you-label strong{color:#eef4ea}.seat-bottom .avatar.you{background:#e3eddc1c;color:#dbe8d3;border-color:#f1f5db17}.seat-bottom .your-score{font:600 20px/1 Manrope,sans-serif;color:#eef4ea;letter-spacing:-.5px}.seat-bottom .your-score small{font:400 9px DM Sans,sans-serif;color:#abc2b4;letter-spacing:0}.seat-bottom .turn-badge{background:#cfe4bd;color:#284d43}.seat-bottom .hand-tiles{padding:8px 4px 10px;min-height:0;gap:10px}.seat-bottom .hand-tile{flex-basis:40px;width:40px;height:82px}.seat-bottom .hand-tile:disabled{opacity:.6}.seat-bottom .hand-tile.selected{outline-color:#e3cf98}.seat-bottom .playable-dot{background:#cfe4bd}.seat-bottom .turn-controls{border:0;padding:0;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.seat-bottom .turn-hint{color:#b6c9be;text-align:right;max-width:none}.pass-bubble{position:absolute;left:50%;top:-14px;z-index:4;translate:-50% 0;padding:4px 12px;border-radius:12px;background:#e3cf98;color:#243c3d;font:700 11px/1.3 Manrope,sans-serif;letter-spacing:.6px;text-transform:uppercase;box-shadow:0 4px 12px #0b292f55;pointer-events:none;animation:pass-pop 1.5s ease both}@keyframes pass-pop{0%{opacity:0;transform:translateY(6px) scale(.8)}12%{opacity:1;transform:none}75%{opacity:1}to{opacity:0;transform:translateY(-6px)}}@media(max-width:1000px){.seat-bottom .hand-panel{grid-template-columns:auto 1fr;grid-template-areas:"me ctl" "tiles tiles";gap:4px 10px}.seat-bottom .you-label{grid-area:me}.seat-bottom .turn-controls{grid-area:ctl}.seat-bottom .hand-tiles{grid-area:tiles}}@media(max-width:700px){.table{min-height:0}.topbar{height:58px}.table-topline{grid-template-columns:1fr auto;padding:12px 14px 2px}.table-topline .table-caption{display:none}.table-topline .exposed{justify-self:start}.table-body .board-scroll{min-height:340px}.table-body{grid-template-areas:"left top right" "board board board" "bottom bottom bottom"}.seat-bottom .hand-panel{padding:8px 10px}.seat-bottom .hand-tiles{justify-content:flex-start}.seat-bottom .hand-tile{flex-basis:36px;width:36px;height:74px}}.table{flex:none;height:calc(100dvh - 84px);min-height:500px}.table-topline{padding:8px 20px 0}.table-body{gap:6px 12px;padding:2px 16px 10px}.seat-top .opponent{flex-wrap:nowrap;padding:6px 14px;gap:14px;min-width:0}.seat-top .opponent-id{gap:9px}.seat-top .opponent-score{padding-left:6px;font-size:20px}.seat-top .tile-backs{flex-basis:auto;padding:2px 10px 4px 4px}.seat-top .tile-backs i{width:12px;height:22px;margin-left:-4px}.seat-top .hand-count{right:-4px;top:-6px}.seat-bottom .hand-panel{padding:4px 14px}.seat-bottom .hand-tiles{padding:6px 4px 8px}.seat-bottom .hand-tile{flex-basis:36px;width:36px;height:74px}@media(max-width:700px){.table{height:auto;min-height:0}}.seat-bottom .hand-tiles{overflow-y:hidden;padding-top:12px}.ghost-tile{position:absolute;z-index:3;padding:0;border:0;background:none;border-radius:5px;opacity:.42;filter:drop-shadow(0 0 0 #0000);outline:2px dashed #e3cf98aa;outline-offset:2px;cursor:pointer;transition:opacity .15s,transform .15s;animation:ghost-in .25s ease both}.ghost-tile .domino-face{width:100%;height:100%}.ghost-tile:hover,.ghost-tile:focus-visible{opacity:.9;transform:scale(1.04);outline-style:solid}.ghost-tile em{position:absolute;left:50%;top:-20px;translate:-50% 0;font:700 11px Manrope,sans-serif;font-style:normal;color:#243c3d;background:#e3cf98;border-radius:8px;padding:1px 6px;opacity:1;white-space:nowrap}.board-tile.drop-target{cursor:pointer}.board-tile.drop-target:hover{filter:drop-shadow(0 0 6px #e3cf98aa)}@keyframes ghost-in{0%{opacity:0}to{opacity:.42}}.ghost-tile{opacity:1;animation:none}.ghost-tile .domino-face{opacity:.42;transition:opacity .15s;animation:ghost-in .25s ease both}.ghost-tile:hover .domino-face,.ghost-tile:focus-visible .domino-face{opacity:.9}.ghost-tile{background:#0b292f59;border:1.5px solid #e3cf9866;outline:0;border-radius:6px;box-shadow:inset 0 0 10px #0b292f66;transition:background .15s,border-color .15s}.ghost-tile:hover,.ghost-tile:focus-visible{background:#0b292f80;border-color:#e3cf98cc;transform:none}.board-tile.dim{opacity:.45;filter:saturate(.6);transition:opacity .15s}.seat-left .opponent,.seat-right .opponent{width:96px;padding:12px 6px}.seat-left .opponent-info span,.seat-right .opponent-info span{font-size:8px}.partner-tag{font-size:7px;letter-spacing:1px;font-weight:700;color:#243c3d;background:#e3cf98;border-radius:4px;padding:2px 5px;vertical-align:2px}.team-scores b{color:#eef4ea;font-weight:600}.reveal-card{max-width:min(720px,calc(100% - 32px));width:100%}.reveal-hands{display:grid;gap:8px;margin:14px 0 6px;text-align:left}.reveal-hand{display:grid;grid-template-columns:110px 1fr 36px;align-items:center;gap:10px;padding:6px 10px;border-radius:10px;background:#24423f0d;border:1px solid transparent}.reveal-hand.counts{background:#e3cf9826;border-color:#e3cf9899}.reveal-hand.winner{background:#cfe4bd40;border-color:#9cbf8f}.reveal-name{font-size:12px;font-weight:600;color:#2b4741}.reveal-pips{font:700 15px Manrope,sans-serif;color:#2b4741;text-align:right}.reveal-tiles{display:flex;flex-wrap:wrap;gap:5px;min-height:46px;align-items:center}.reveal-tile{display:block;width:22px;height:46px;filter:drop-shadow(0 2px 2px #33452a33);animation:reveal-flip .45s ease both;animation-delay:calc(var(--k) * 70ms + .15s)}.reveal-tile .domino-face{width:100%;height:100%}.reveal-out{font-size:11px;color:#6a806c}.reveal-math{font-size:13px!important;color:#2b4741!important;margin:10px 0 16px}.reveal-math strong{font:700 16px Manrope,sans-serif;color:#2b5453}@keyframes reveal-flip{0%{transform:rotateY(90deg);opacity:0}to{transform:none;opacity:1}}@media(max-width:700px){.reveal-hand{grid-template-columns:70px 1fr 28px;gap:6px}.reveal-tile{width:18px;height:38px}}.score-pop{position:fixed;z-index:70;pointer-events:none;padding:6px 16px;border-radius:999px;background:linear-gradient(180deg,#f6e3a8,#d9b968);color:#1f3a3a;font:800 30px/1 Manrope,sans-serif;letter-spacing:-.5px;box-shadow:0 8px 24px #0b292f73,0 0 0 3px #fff6d877;text-shadow:0 1px 0 #fff7}.score-bump{animation:score-bump 1s ease both}@keyframes score-bump{0%{transform:scale(1);color:inherit;text-shadow:none}25%{transform:scale(1.45);color:#f3dc97;text-shadow:0 0 14px #e3cf98}60%{transform:scale(1.15);color:#f3dc97}to{transform:scale(1);text-shadow:none}}.seat-bottom .your-score,.opponent-score{display:inline-block;transform-origin:50% 60%}.seat-bottom .your-score.score-bump{color:#e3cf98}.end-equation.scoring{animation:eq-glow 2.2s ease both}.end-equation.scoring strong{color:#f3dc97}@keyframes eq-glow{0%,to{text-shadow:none}15%,70%{text-shadow:0 0 12px #e3cf98cc}}@media(prefers-reduced-motion:reduce){.score-bump,.end-equation.scoring{animation:none}}.opponent.team-a,.seat-bottom .hand-panel.team-a{box-shadow:inset 0 3px #e3cf98b3}.opponent.team-b{box-shadow:inset 0 3px #9fb8d6b3}.opponent.team-a .avatar{border-color:#e3cf98aa}.opponent.team-b .avatar{border-color:#9fb8d6aa}.opponent.active.team-a,.opponent.active.team-b{border-color:#bbd7acb0}@media(min-width:701px){.table-body{grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"left board right" "bottom bottom bottom"}.table-body .seat-top{position:absolute;left:50%;top:2px;transform:translate(-50%);z-index:4;pointer-events:none}.table-body .seat-top .opponent{pointer-events:auto;background:#244c50d9}}.ghost-tile:before{content:"";position:absolute;inset:-9px;border-radius:10px}.opponent-info .partner-tag{color:#243c3d;font-size:7px;text-transform:none}@media(max-width:700px){.table-body .seat-right .hand-count{left:auto;right:-9px}.table-body .opponent-info .partner-tag{display:inline-block;font-size:6px;padding:1px 4px}}@media(max-width:700px){.table-body{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr)}.table-body .seat .opponent{width:100%;min-width:0}.table-body .seat-top .opponent{gap:8px;padding:7px 8px}.table-body .opponent-info strong{white-space:nowrap}}@media(max-width:700px){.table-body .seat-top .opponent{flex-wrap:wrap;justify-content:center;row-gap:4px}.table-body .seat-top .partner-tag{display:block;width:max-content;margin-top:3px}.table-body .seat-top .tile-backs{flex-basis:100%;justify-content:center;padding:0}}.board-scroll{scrollbar-gutter:stable both-edges}.board-scroll,.table-body .board-scroll{overflow:hidden;scrollbar-gutter:auto}.footer-links{display:flex;gap:14px;align-items:center}.stats-wrap{overflow-x:auto;margin:0 -4px}.stats-table{width:100%;border-collapse:collapse;font-size:12px;color:#4d6650}.stats-table th,.stats-table td{padding:8px 6px;text-align:right;border-bottom:1px solid #dfe6d9;white-space:nowrap}.stats-table th[scope=row]{text-align:left;font-weight:500;color:#6f846d}.stats-table thead th{font:650 12px Manrope,sans-serif;color:#2b4d3d}.stats-table strong{font:650 15px Manrope,sans-serif;color:#243c3d}.stats-name.team-a{box-shadow:inset 0 -3px #e3cf98}.stats-name.team-b{box-shadow:inset 0 -3px #9fb8d6}@media(max-width:700px){.table-body .seat-top .hand-count{right:auto;left:calc(50% + (var(--n) * 5px + 3px) / 2 - 5px);top:-6px}.seat-bottom .hand-tiles{padding:12px 8px 14px}}.shell{height:100dvh;min-height:0;padding-bottom:0}.table{flex:1 1 0;height:auto;min-height:0}.table-body .board-scroll{min-height:0}.footer{flex:none;min-height:36px;padding:0 3px;flex-wrap:nowrap}.footer .save-note{width:auto;order:0}.footer .text-button{min-height:36px}.seat-bottom .hand-tiles{overflow:visible;justify-content:center;min-width:0;max-width:100%}.rack-controls{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap;min-width:0}.hand-pager{display:flex;align-items:center;gap:6px;color:#d9e8d5;font-size:11px}.hand-pager span{min-width:44px;text-align:center}.hand-pager button{width:44px;height:44px;border:1px solid #c5dfbf66;background:#ffffff12;border-radius:8px;color:inherit;font-size:26px;line-height:1}.hand-pager button:disabled{opacity:.35}.destination-controls{display:flex;gap:6px;flex-wrap:nowrap}.destination-button{display:inline-flex;align-items:baseline;gap:5px;min-width:44px;min-height:44px;padding:5px 10px;border:1px solid #e3cf98;border-radius:8px;background:#e3cf98;color:#244c50;font-size:11px;font-weight:600}.destination-button b{font:700 17px/1 Manrope,sans-serif}.destination-number{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff3cf;text-shadow:0 1px 3px #173b3c}.round-overlay{inset:0;padding:12px}.reveal-card{max-height:100%;overflow:auto;overscroll-behavior:contain}@media(min-width:1001px){.seat-bottom .hand-panel{grid-template-columns:minmax(150px,1fr) minmax(0,3fr) minmax(150px,1fr)}}@media(max-width:700px),(max-height:500px)and (max-width:1000px){.shell{padding:0 8px max(0px,env(safe-area-inset-bottom))}.topbar{height:48px;gap:8px}.brand{font-size:26px}.tagline{display:none}.header-actions{gap:0}.icon-button,.new-game{width:44px;height:44px;min-height:44px;margin:0;padding:8px}.new-game span{display:none}.table{margin-top:4px;border-radius:12px}.table-topline{grid-template-columns:minmax(0,1fr) auto;padding:5px 10px 0;gap:4px;font-size:10px;flex:none}.table-topline .table-caption{display:none}.table-topline .exposed{justify-self:start;gap:6px;flex-wrap:wrap}.table-topline .score-flash{min-width:0;font-size:11px}.table-body{gap:5px;padding:5px 6px 6px}.table-body .seat-top{position:static;transform:none;pointer-events:auto}.table-body .board-scroll{height:auto!important;border-radius:0}.table-body .seat .opponent{width:100%;min-width:0;max-width:none;padding:5px 6px;gap:4px;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;text-align:left}.table-body .opponent-id{flex-direction:row;gap:0}.table-body .opponent .avatar{display:none}.table-body .opponent-info{align-items:flex-start;gap:2px}.table-body .opponent-info strong{font-size:11px;white-space:normal}.table-body .opponent-info>span{display:block;font-size:9px}.table-body .opponent-info .partner-tag{font-size:6px;display:inline-block;margin:0;padding:1px 3px}.table-body .opponent-score{font-size:16px;padding:0;margin:0}.table-body .opponent-score small{display:none}.table-body .seat .opponent .tile-backs{display:flex;position:absolute;left:50%;top:50%;width:12px;height:20px;padding:0;opacity:0;pointer-events:none;transform:translate(-50%,-50%)}.table-body .seat .opponent .tile-backs i{position:absolute;inset:0;width:12px;height:20px;margin:0;transform:none}.table-body .seat .opponent .hand-count{display:none}.seat-bottom .hand-panel{display:grid;padding:4px 6px;gap:0 6px;grid-template-columns:auto minmax(0,1fr);grid-template-rows:44px 44px 116px;grid-template-areas:"me hint" "ctl ctl" "tiles tiles";align-items:center}.seat-bottom .you-label{grid-area:me;gap:0}.seat-bottom .avatar.you{display:none}.seat-bottom .you-label strong{gap:4px;font-size:11px}.seat-bottom .your-score{font-size:18px}.seat-bottom .turn-badge{font-size:6px;padding:2px 4px}.seat-bottom .turn-controls{display:contents}.seat-bottom .turn-hint{grid-area:hint;font-size:10px;line-height:1.25;text-align:right;margin:0}.seat-bottom .rack-controls{grid-area:ctl;justify-content:center}.seat-bottom .hand-tiles{grid-area:tiles;align-self:stretch;gap:4px;padding:12px 4px 14px}.seat-bottom .hand-tile{width:44px;flex:0 0 44px;height:90px}.play-controls .button{min-height:44px;font-size:11px}.footer{min-height:36px;gap:3px;font-size:8px}.footer-links{gap:8px}.footer .text-button{font-size:9px}.empty-table h2{font-size:17px;margin:5px}.empty-table p{font-size:10px;padding:0 8px}.empty-mark{width:54px;margin:0}.round-card{max-width:100%;padding:16px}.reveal-hands{gap:5px}.reveal-hand{grid-template-columns:60px minmax(0,1fr) 24px;padding:5px;gap:5px}.reveal-tile{width:24px;height:49px}}@media(max-width:559px),(max-width:700px)and (min-height:501px){.table-body{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"left top right" "board board board" "bottom bottom bottom"}}@media(max-width:559px)and (max-height:650px){.seat-bottom .hand-panel{grid-template-rows:48px 116px;grid-template-areas:"me hint" "tiles tiles"}.seat-bottom .rack-controls{grid-area:hint;justify-content:flex-end}.seat-bottom .hand-panel:has(.rack-controls>*) .turn-hint{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.destination-button{padding:5px 7px}}@media(min-width:560px)and (max-height:500px)and (max-width:1000px){.topbar{height:42px}.table{margin-top:2px}.footer,.footer .text-button{min-height:28px}.footer .save-note{display:none}.table-topline{padding-top:2px}.table-body{gap:4px;padding:2px 5px 4px;grid-template-columns:minmax(0,1fr) repeat(3,minmax(0,78px));grid-template-rows:auto minmax(0,1fr);grid-template-areas:"board left top right" "board bottom bottom bottom"}.table-body .seat .opponent{flex-direction:column;align-items:flex-start;gap:1px;padding:4px 5px}.table-body .opponent-info strong{font-size:10px}.table-body .opponent-score{font-size:14px}.seat-bottom .hand-panel{grid-template-columns:1fr;grid-template-rows:auto 1fr 44px 104px;grid-template-areas:"me" "hint" "ctl" "tiles";padding:4px 5px}.seat-bottom .you-label>div{flex-direction:row;gap:8px;align-items:center}.seat-bottom .turn-hint{text-align:center}.seat-bottom .hand-tiles{padding:10px 4px 12px}.seat-bottom .hand-tile{width:38px;flex-basis:38px;height:78px}.reveal-card h2,.reveal-hands{margin:6px 0}.reveal-tile{width:18px;height:37px}}
