:root{font-family:Arial,PingFang SC,sans-serif;color:#ece7d9;background:#061c18;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button{cursor:pointer;color:inherit;border:1px solid #c1a76a45;background:#102f28;border-radius:5px;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#255044}button:disabled{opacity:.4;cursor:default}button:focus-visible{outline:2px solid #f4d694;outline-offset:3px}.app{position:relative;height:100dvh;min-height:660px;overflow:hidden}.scene{position:absolute;inset:42px 0 110px;touch-action:none}.scene canvas{touch-action:none}.topbar{height:76px;position:absolute;inset:0 0 auto;padding:14px max(24px,env(safe-area-inset-right)) 10px max(24px,env(safe-area-inset-left));display:flex;align-items:center;gap:36px;background:linear-gradient(#051b18,transparent);z-index:2}.brand{display:flex;gap:12px;align-items:center;color:#e7d7ac;text-decoration:none;letter-spacing:3px;font-family:Georgia,"Noto Serif SC",serif;font-size:18px}.brand-seal{border:1px solid #b9a06c;border-radius:50%;width:40px;height:40px;display:grid;place-items:center;font-size:24px}.brand small{display:block;font-family:Arial,sans-serif;letter-spacing:3px;font-size:8px;margin-top:6px;color:#a2977f}.table-id{font-size:11px;letter-spacing:1px;color:#a3b5a9}.table-id i,.live-dot,.busy-dot{display:inline-block;background:#6cdca8;width:5px;height:5px;border-radius:50%;margin:0 6px 2px}.busy-dot{background:#cdb578}.top-actions{margin-left:auto;display:flex;gap:8px}.top-actions button{font-size:12px;padding:9px 13px;background:#0c241fe0}.glass{background:#08251fd9;border:1px solid #bda2663d;box-shadow:0 8px 30px #0003;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.roads-position{position:absolute;top:90px;left:24px;width:330px;z-index:2}.roads{color:#d1ddcf}.compact{padding:10px;border-radius:7px;cursor:pointer}.road-heading{display:flex;justify-content:space-between;font-size:12px;letter-spacing:1px;padding:0 2px 7px}.road-heading small{font-size:10px;color:#8aab9c;letter-spacing:0;margin-left:8px}.expand{font-size:10px;color:#b49c67}.road-primary{display:flex;gap:10px}.road{min-width:0;flex:1}.road label{font-size:10px;color:#96b1a1;display:block;margin-bottom:3px}.road-scroll{overflow-x:auto;scrollbar-width:thin;background:#09291e;border:1px solid #5676634d}.road svg{display:block}.compact .road-big label{display:none}.compact .road-big .road-scroll{height:82px}.compact .road-big svg{height:80px;width:auto;min-width:100%}.derived{display:flex;gap:7px;margin-top:8px}.derived .road-scroll{height:60px}.derived svg{height:58px;width:auto}.compact .derived .road-scroll{height:36px}.compact .derived svg{height:34px}.road-stats{display:flex;gap:14px;font-size:10px;margin-top:9px}.road-stats b{font-weight:400}.red{color:#ee9393}.blue{color:#90c0e4}.green{color:#81cda9}.wallet{position:absolute;top:92px;right:24px;border-radius:7px;min-width:195px;padding:15px 18px;text-align:right;font-size:11px;z-index:2}.wallet>span{color:#a9bcae;font-size:10px;letter-spacing:2px}.wallet strong{display:block;font:30px Georgia,serif;color:#e6d2a0;margin:6px 0 12px}.wallet b{font-weight:400;margin-left:14px}.wallet small{display:block;color:#748f7f;margin-top:10px}.dealer-name{position:absolute;top:37%;left:50%;transform:translate(-50%);font-size:10px;text-align:center;color:#d6c89f;pointer-events:none}.dealer-name small{display:block;font-size:8px;letter-spacing:1px;color:#9eb4a3;margin-top:5px}.hand-labels{position:absolute;top:52%;left:50%;transform:translate(-50%);width:43%;display:flex;justify-content:space-between;text-align:center;pointer-events:none}.hand-labels>div{width:40%}.hand-labels span{font-size:10px;letter-spacing:4px}.hand-labels b{display:block;margin:4px;font:22px Georgia,serif}.hand-labels small{font-size:13px;display:block;min-height:18px;letter-spacing:3px}.subtitle{position:absolute;bottom:285px;left:50%;transform:translate(-50%);padding:7px 20px;border-radius:30px;background:#021e18a6;color:#e4dac4;font-size:12px;pointer-events:none;white-space:nowrap}.game-controls{position:absolute;bottom:0;left:0;right:0;padding:0 max(24px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:linear-gradient(transparent,#061e19 18%);z-index:3}.status-row{display:flex;justify-content:space-between;color:#c0bd9d;font-size:10px;letter-spacing:1px;margin:14px 0 12px}.status-row>span:last-child{color:#869c89}.bets{display:grid;grid-template-columns:.8fr 1.4fr 1fr 1.4fr .8fr 1fr;gap:8px;max-width:1060px;margin:0 auto}.bet{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;height:88px;background:#0e342bd9;border:1px solid #b5a16a65;border-radius:7px;color:#decda0}.bet small{font-size:8px;letter-spacing:2px;color:#aeb99d}.bet strong{font:24px "Noto Serif SC",serif}.bet span{font-size:9px;color:#aaa78b}.bet-P{background:#0f3344d9;border-color:#507991}.bet-P strong{color:#a0c8ed}.bet-B{background:#462a2ad9;border-color:#94605b}.bet-B strong{color:#f0ada1}.bet-T{background:#153c2dd9}.bet:disabled{opacity:.7}.bet em{position:absolute;top:-10px;right:8px;min-width:32px;text-align:center;padding:5px 8px;border-radius:25px;background:#d3b46d;color:#17281d;font-size:10px;font-style:normal;border:2px solid #f2db9d;box-shadow:0 2px 6px #0008}.has-bet{box-shadow:inset 0 0 28px #cda25515}.bottom-row{display:flex;align-items:center;gap:20px;max-width:1060px;margin:16px auto 12px}.chip-rack{display:flex;gap:10px}.chip{width:46px;height:46px;border:5px dashed #dfdbc1;border-radius:50%;box-shadow:0 3px #0a1511,0 5px 8px #0009;display:grid;place-items:center;padding:2px;position:relative;touch-action:manipulation}.chip span{font:700 11px Georgia,serif;display:grid;place-items:center;width:29px;height:29px;border:1px solid #ece3c585;border-radius:50%;color:#fff9e5}.chip-0{background:#556559}.chip-1{background:#386d9c}.chip-2{background:#943e44}.chip-3{background:#674c87}.chip-4{background:#a58436}.chip-5{background:#334b4d}.chip-6{background:#bc7950}.chip.selected{transform:translateY(-7px);outline:1px solid #d7bc7b;outline-offset:5px}.chip:disabled{opacity:.65}.utility{display:flex;gap:5px}.utility button{font-size:11px;padding:8px 10px;border-color:#74917d40;background:transparent}.main-action{display:flex;gap:8px;margin-left:auto;align-items:center}.gold-button{background:linear-gradient(120deg,#edda9e,#b79a58);border:1px solid #ebd59a;color:#25342a;font-weight:600;letter-spacing:1px;padding:14px 24px;white-space:nowrap;box-shadow:0 3px 15px #c3a35e18}.gold-button:hover:not(:disabled){background:#eddda8}.skip{background:none;border:0;font-size:11px;padding:8px}footer{border-top:1px solid #69806b25;padding-top:9px;font-size:9px;color:#7a9583;display:flex;justify-content:space-between}.result-banner{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;padding:17px 50px;background:linear-gradient(90deg,transparent,#142e23f5,transparent);min-width:300px;z-index:2;pointer-events:none;animation:appear .4s ease-out}.result-banner small{font-size:8px;letter-spacing:4px;color:#a89461}.result-banner strong{font:38px "Noto Serif SC",serif;margin:8px}.result-banner span{font-size:12px;color:#eadbb6}.result-banner.player strong{color:#a1ceee}.result-banner.banker strong{color:#efb0a3}.result-banner.tie strong{color:#9ad5b5}@keyframes appear{0%{opacity:0;margin-top:12px}to{opacity:1;margin-top:0}}.entry{position:absolute;inset:0;background:#031812c9;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);z-index:10;display:grid;place-items:center}.entry-card{text-align:center;padding:35px 50px;border:1px solid #c5aa5b60;background:linear-gradient(140deg,#123c30f5,#061d18f5);border-radius:12px;box-shadow:0 30px 100px #0007}.entry-emblem{margin:0 auto 18px;width:66px;height:66px;border:1px solid #d0b878;border-radius:50%;display:grid;place-items:center;font:37px "Noto Serif SC",serif;color:#e2cf91}.entry-card>small{font:9px Georgia,serif;letter-spacing:5px;color:#bba66b}.entry-card h1{font:34px "Noto Serif SC",serif;letter-spacing:7px;color:#e8dab2;margin:15px 0}.entry-card p{color:#a9bcab;font-size:12px;line-height:2}.entry-features{display:flex;justify-content:center;gap:22px;margin:25px 0;font-size:11px;color:#c2b892}.entry-card>.gold-button{width:100%;margin-bottom:10px}.entry-card .entry-note{font-size:10px;color:#789583}.modal-backdrop{position:fixed;inset:0;background:#00120de0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;display:flex;justify-content:center;align-items:center;padding:24px}.modal{width:min(880px,100%);max-height:90dvh;overflow-y:auto;padding:25px;border:1px solid #b49b5b65;background:#0c2a22;border-radius:12px;box-shadow:0 30px 90px #0006}.modal-settings{max-width:510px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-head h2{font:22px "Noto Serif SC",serif;margin:0;color:#e2c991}.modal-head button,.modal>button{padding:9px 12px;font-size:12px}.modal p{font-size:11px;line-height:1.8;color:#a1b7a5}.modal .road-scroll{background:#dfe6dc}.modal .road label{color:#bbcfbb}.modal .derived .road-scroll{height:110px}.modal .derived svg{height:108px;width:auto}.modal .road-stats{font-size:13px;gap:22px;margin-top:16px}.setting{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 0;border-bottom:1px solid #66826930;font-size:13px}.setting select{padding:8px;font-size:11px;border:1px solid #6a89654d;background:#082319;border-radius:4px;max-width:65%}.setting input[type=range]{width:150px;accent-color:#cab071}.setting input[type=checkbox]{accent-color:#cdb376;width:17px;height:17px}.history-scroll{overflow:auto;max-height:55vh}table{border-collapse:collapse;width:100%;font-size:12px}td,th{padding:14px 10px;text-align:left;border-bottom:1px solid #7c9c7130}th{color:#c0bb93}.squeeze-focus{position:fixed;inset:0;background:#073b30;z-index:15;touch-action:none;display:flex;flex-direction:column}.squeeze-focus canvas{touch-action:none}.focus-title,.focus-foot{display:flex;justify-content:space-between;align-items:center;padding:20px max(24px,env(safe-area-inset-right)) 20px max(24px,env(safe-area-inset-left));font-size:14px;z-index:1;background:#06271f}.focus-title small{display:block;font-size:10px;color:#a9bfac;margin-top:6px}.focus-title button,.focus-foot button{padding:10px;font-size:11px}.squeeze-focus>div:has(canvas){flex:1;min-height:0}.focus-foot{font-size:12px;padding-bottom:max(20px,env(safe-area-inset-bottom))}.focus-done{margin:auto}.scene-error{padding:30px;max-width:400px;font-size:13px;color:#cfb67a}@media(max-width:1050px){.table-id{display:none}.roads-position{width:265px;left:16px}.wallet{right:16px;min-width:155px;padding:12px}.wallet strong{font-size:25px}.game-controls{padding-left:16px;padding-right:16px}.chip-rack{gap:8px}.chip{width:39px;height:39px;border-width:4px}.chip span{width:26px;height:26px;font-size:10px}.bottom-row{gap:14px}.utility button{padding:8px}.gold-button{padding:13px 16px}.hand-labels{top:53%}}@media(max-height:650px)and (orientation:landscape){.app{min-height:360px}.topbar{height:46px;padding-top:5px;padding-bottom:5px}.brand{font-size:13px}.brand-seal{width:28px;height:28px;font-size:17px}.brand small{font-size:6px;margin-top:3px}.top-actions button{padding:6px 10px;font-size:10px}.roads-position{top:53px;width:230px}.compact{padding:7px}.compact .road-big .road-scroll{height:56px}.compact .road-big svg{height:54px}.compact .derived{margin-top:4px}.compact .derived .road-scroll{height:25px}.compact .derived svg{height:23px}.road-stats{margin-top:5px;gap:10px;font-size:9px}.wallet{top:53px;padding:9px;min-width:135px}.wallet strong{font-size:22px;margin:3px 0 6px}.wallet small{margin-top:6px;font-size:9px}.scene{inset:10px 0 65px}.dealer-name{top:33%}.hand-labels{top:44%;width:43%}.hand-labels b{font-size:18px}.hand-labels small{font-size:10px}.game-controls{padding-bottom:max(5px,env(safe-area-inset-bottom))}.status-row{margin:5px 0;font-size:8px}.bet{height:56px;gap:2px}.bet strong{font-size:19px}.bet small{font-size:6px}.bet span{font-size:8px}.bottom-row{margin:8px auto 5px;gap:12px}.chip-rack{gap:10px}.chip{width:33px;height:33px;border-width:3px}.chip span{width:24px;height:24px;font-size:9px}.chip.selected{transform:translateY(-3px);outline-offset:3px}.utility button{font-size:9px;padding:6px}.gold-button{padding:10px 15px;font-size:11px}.subtitle{bottom:170px;font-size:10px;padding:4px 12px}.game-controls footer{padding-top:4px;font-size:7px}.entry-card{padding:18px 40px}.entry-emblem{width:42px;height:42px;font-size:27px;margin-bottom:8px}.entry-card h1{font-size:26px;margin:10px}.entry-card p{margin:6px}.entry-features{margin:15px}.result-banner{top:40%;padding:8px 40px}.result-banner strong{font-size:28px;margin:4px}}@media(max-width:650px)and (orientation:portrait){.app{min-height:760px}.topbar{height:72px;padding-left:16px;padding-right:16px}.brand{font-size:14px;gap:9px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:2px}.brand-seal{width:32px;height:32px;font-size:20px}.top-actions button{padding:7px 9px;font-size:10px}.roads-position{top:76px;left:12px;width:58%}.compact .road-big .road-scroll{height:58px}.compact .road-big svg{height:56px}.compact .derived{gap:4px}.compact .derived .road-scroll{height:26px}.compact .derived svg{height:24px}.road-heading{font-size:10px}.road-stats{gap:7px;font-size:8px}.road label{font-size:8px}.wallet{top:76px;right:12px;min-width:0;width:34%;padding:11px 8px}.wallet>span{font-size:8px;letter-spacing:1px}.wallet strong{font-size:23px}.wallet>div{font-size:8px}.wallet b{margin-left:3px}.wallet small{font-size:8px}.scene{inset:160px -42% 175px}.dealer-name{top:33%;font-size:9px}.hand-labels{top:49%;width:85%}.hand-labels b{font-size:20px}.hand-labels small{font-size:12px;letter-spacing:1px}.game-controls{padding-left:12px;padding-right:12px}.status-row{font-size:8px;letter-spacing:0;margin:9px 0}.bets{grid-template-columns:.8fr 1.2fr .8fr 1.2fr .8fr;gap:5px}.bet{height:70px;gap:4px}.bet-D7{grid-column:1/-1;height:30px;flex-direction:row;gap:15px}.bet-D7 strong{font-size:15px}.bet strong{font-size:22px}.bet small{font-size:6px;letter-spacing:1px}.bet span{font-size:7px}.bet em{padding:3px 5px;font-size:8px;right:2px;top:-7px;min-width:25px}.bottom-row{flex-wrap:wrap;gap:13px 10px;margin:15px 0 10px}.chip-rack{width:100%;justify-content:center;gap:13px}.chip{width:37px;height:37px}.chip span{width:24px;height:24px;font-size:9px}.utility{gap:7px}.utility button{font-size:10px;padding:8px}.gold-button{padding:12px 17px;font-size:12px}.main-action{gap:0}.skip{font-size:10px}.subtitle{bottom:310px;font-size:10px;max-width:90%;white-space:normal;text-align:center;width:max-content}.game-controls footer{font-size:7px;gap:12px;line-height:1.5}.entry-card{padding:30px 25px;max-width:90%}.entry-card h1{font-size:30px}.entry-card .entry-note{font-size:9px}.result-banner{top:42%}.modal-backdrop{padding:12px}.modal{padding:17px}.modal-head h2{font-size:18px}.road-primary,.modal .derived{flex-direction:column}.modal .derived .road-scroll{height:74px}.modal .derived svg{height:72px}td,th{padding:12px 6px;font-size:10px}}.flat-scene{position:absolute;inset:80px 0 130px;background:radial-gradient(ellipse at 50% 90%,#176448,#103f30 65%,#08281f 66%,#061c18 68%);overflow:hidden;pointer-events:none}.flat-arc{position:absolute;inset:20% 8% -30%;border:1px solid #c5a35b70;border-radius:50%}.flat-mark{position:absolute;top:26%;left:50%;transform:translate(-50%);font:24px "Noto Serif SC",serif;letter-spacing:9px;color:#d5b8736b;text-align:center}.flat-mark small{display:block;font:8px Arial;letter-spacing:4px;margin-top:10px}.webgl-note{position:absolute;top:8%;width:100%;text-align:center;font-size:10px;color:#8caa95}.flat-hands{position:absolute;top:52%;left:50%;transform:translate(-50%);display:flex;gap:80px}.flat-hands>div{display:flex;gap:8px}.flat-card{width:60px;height:88px;border:3px double #cab37c;background:repeating-linear-gradient(45deg,#154439 0 3px,#1b4e40 3px 5px);color:#dcc389;display:grid;place-items:center;font:22px Georgia;box-shadow:2px 5px 9px #0005;pointer-events:auto}.flat-card:disabled{opacity:1}.flat-card.opened{background:#fff9e8}.flat-card b{font-size:30px;font-weight:400}.squeeze-focus .flat-scene{position:relative;flex:1;inset:auto;min-height:55vh}.squeeze-focus .flat-hands{top:45%;gap:30px}@media(max-width:650px)and (orientation:portrait){.flat-scene{inset:175px -50% 190px}.flat-hands{gap:45px}.flat-card{width:43px;height:67px;font-size:18px}.flat-card b{font-size:22px}.webgl-note{top:13%}.flat-mark{top:28%;font-size:18px}}@media(max-height:650px)and (orientation:landscape){.flat-scene{inset:40px 0 110px}.flat-mark{top:15%;font-size:17px}.flat-hands{top:50%}.flat-card{width:45px;height:65px;font-size:16px}.flat-card b{font-size:20px}.webgl-note{top:2%;font-size:8px}}.compact .road-scroll{scrollbar-width:none}.compact .road-scroll::-webkit-scrollbar{display:none}.app:has(.flat-scene) .hand-labels{top:43%}.app:has(.flat-scene) .dealer-name{display:none}
