@font-face{font-family:Sora;src:url(../trade/fonts/sora-latin-v17.woff2) format('woff2');font-weight:100 800;font-display:swap}
:root{color-scheme:dark;--bg:#0b0c11;--surface:#14161f;--card:#1b1d27;--edge:#282b39;--edge2:#343849;--text:#eef0f7;--muted:#9096ab;--green:#35d59b;--blue:#55c8f2;--red:#ff5d73}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:13px Sora,-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{color:inherit;cursor:pointer;border:1px solid var(--edge2);background:var(--card);font-weight:700;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button:hover{border-color:#626980}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}input{min-width:0;color:var(--text);background:none;border:0;outline:0}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.defs{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}button,a,input{-webkit-tap-highlight-color:transparent}
.site{height:60px;border-bottom:1px solid var(--edge);display:flex;align-items:center;padding:0 22px;gap:32px;background:#0a0b10}.brand{display:flex;align-items:center;gap:8px;font-size:19px;font-weight:800;letter-spacing:.02em}.brand svg{width:78px;height:13px;stroke:none}.site nav{display:flex;gap:28px;color:var(--muted);font-weight:700}.site nav a{min-height:44px;display:flex;align-items:center}.site nav a.active{color:var(--text)}.site-wallet{margin-left:auto;background:var(--surface);border:1px solid var(--edge);border-radius:24px;padding:5px 14px;text-align:right}.site-wallet small{font-size:8px;letter-spacing:.06em;display:block;color:var(--muted)}.site-wallet b{font-size:16px;font-weight:800}
.page{max-width:1120px;margin:12px auto 0;padding:0 22px}.game-header{height:62px;display:flex;align-items:center;justify-content:space-between;gap:12px}.identity{display:flex;align-items:center;gap:9px;min-width:0}.game-logo{width:30px;height:30px;object-fit:contain;flex-shrink:0;color:var(--green)}h1{font-size:21px;font-weight:800}.title-help{background:none;border:0;padding:0;min-height:44px;text-align:left;font-weight:800;white-space:nowrap}.title-help span{font-size:12px;letter-spacing:.08em;color:var(--muted);margin-left:5px}.mode{font-size:10px;font-weight:700;color:#ffc94d;background:#ffc94d10;border:1px solid #775c25;border-radius:6px;padding:4px 7px;white-space:nowrap}.tools{display:flex;align-items:center;gap:7px}.text-tool{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:44px;padding:0 8px;background:none;border:0;color:var(--muted);font-size:12px}.text-tool:hover{color:var(--text)}.text-tool svg{width:17px;height:17px}.square{width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:22px}.mobile-balance,.mobile-fair{display:none}.game-frame{height:clamp(500px,calc(100dvh - 200px),680px);border:1px solid var(--edge);border-radius:16px;background:var(--surface);overflow:hidden;display:grid;grid-template-rows:48px minmax(0,1fr) 112px}.recent{display:flex;align-items:center;gap:12px;padding:0 18px;border-bottom:1px solid var(--edge);min-width:0}.recent-label,.empty{font-size:11px;color:var(--muted);white-space:nowrap}.chips{display:flex;align-items:center;gap:6px;flex:1;min-width:0;height:100%;overflow-x:auto;scrollbar-width:none}.chip{height:44px;min-width:52px;border:0;border-radius:7px;padding:0 9px;white-space:nowrap;flex-shrink:0;font-size:11px;color:var(--muted);background:var(--card)}.chip.win{color:var(--green);background:#35d59b18}.record-button{padding-right:0;white-space:nowrap}
.table{position:relative;min-height:0;isolation:isolate;display:grid;grid-template-rows:1fr 64px 1fr;justify-items:center;padding:22px 60px 18px;gap:0;background-image:radial-gradient(ellipse at 50% 44%,#274a3e30,transparent 66%),linear-gradient(#ffffff02 1px,transparent 1px),linear-gradient(90deg,#ffffff02 1px,transparent 1px);background-size:auto,32px 32px,32px 32px}.table-ring{position:absolute;width:83%;height:78%;top:10%;border:1px solid #75c9ac0e;border-radius:50%;box-shadow:0 0 0 28px #35d59b02;pointer-events:none;z-index:-1}.lane{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:0;width:100%}.lane-label{display:flex;align-items:center;gap:10px;height:26px;margin-bottom:8px;font-size:12px;font-weight:700;color:#c5cbdb}.lane-label small{font-size:8px;letter-spacing:.14em;color:#727d91;margin-left:6px}.score{padding:4px 9px;min-width:28px;border:1px solid #5d6b7f44;border-radius:6px;font-size:12px;color:var(--text);background:#1e2633;line-height:16px}.score.soft{color:#b9ceff}.score.bust{color:var(--red);background:#ff5d7312;border-color:#ff5d732a}.score.win{color:var(--green);background:#35d59b14;border-color:#35d59b33}.cards{height:clamp(78px,calc((100dvh - 434px)/2),142px);display:flex;align-items:center;justify-content:center;position:relative;perspective:1000px;padding:0 12px;max-width:100%}.card{height:100%;aspect-ratio:2.25/3.2;position:relative;flex-shrink:0;transition:transform .4s,opacity .4s;margin-left:var(--overlap,8px);filter:drop-shadow(0 5px 7px #0004)}.card:first-child{margin-left:0}.card-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.22,.7,.18,1)}.card.open .card-inner{transform:rotateY(180deg)}.face,.back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:8px;overflow:hidden}.face{background:linear-gradient(125deg,#fcfcff,#dfe5ee);color:#182239;transform:rotateY(180deg);border:1px solid #fff9}.face.red{color:#d44160}.corner{position:absolute;top:7px;left:8px;display:flex;flex-direction:column;align-items:center;font-size:19px;font-weight:800;line-height:1.05}.corner small{font-size:13px;margin-top:2px}.corner.bottom{inset:auto 8px 7px auto;transform:rotate(180deg)}.suit{position:absolute;inset:0;display:grid;place-items:center;font-family:Georgia,serif;font-size:43px}.back{display:grid;place-items:center;background:repeating-linear-gradient(45deg,#ffffff04 0 1px,transparent 1px 7px),linear-gradient(135deg,#263e40,#152a2b);border:1px solid #648b8566;box-shadow:inset 0 0 0 5px #172d2e,inset 0 0 0 6px #7eb9a940}.back>i{border:1px solid #8ec9b75c;border-radius:4px;transform:rotate(45deg);display:grid;place-items:center;width:34px;height:34px;color:#b2d6c8;font-size:16px}.back>i b{transform:rotate(-45deg)}.card.arriving{animation:deal .48s cubic-bezier(.15,.65,.2,1) both}.card.placeholder{opacity:.32}.dealer-note{font-size:9px;color:#69778a;margin-top:8px;line-height:14px}.table-message{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;z-index:2;min-height:0}#message{font-size:17px;font-weight:700;letter-spacing:.02em}#subMessage{font-size:10px;color:var(--muted);letter-spacing:.03em}.table-message.positive>div:first-child{color:var(--green)}.table-message.negative>div:first-child{color:var(--red)}.players{width:100%;min-height:0;display:flex;align-items:center;justify-content:center;gap:24px}.player-hand{position:relative;display:flex;align-items:center;flex-direction:column;min-width:0;flex:0 1 auto;padding:4px 18px 6px;border-radius:13px;transition:background .3s,box-shadow .3s}.player-hand.active{background:#35d59b06;box-shadow:inset 0 0 0 1px #35d59b2a}.player-hand.active .lane-label>span{color:var(--green)}.hand-bottom{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:7px;font-size:10px;color:var(--muted);height:16px;white-space:nowrap}.hand-bottom b{font-size:10px;color:#bdc6d5}.hand-outcome{font-size:9px!important;color:var(--green)!important}.hand-outcome.lose{color:var(--muted)!important}.players.split-hands{gap:12px}.split-hands .player-hand{padding:4px 8px 6px;flex:1;max-width:205px}.split-hands .cards{height:clamp(70px,calc((100dvh - 434px)/2),115px)}.split-hands .card{--overlap:-25px}.split-hands .card:first-child{margin-left:0}.shoe{position:absolute;right:42px;top:42%;display:flex;align-items:center;flex-direction:column;gap:12px;color:#586e6b;font-size:8px;letter-spacing:.08em}.shoe i{display:block;width:35px;height:48px;border-radius:5px;background:repeating-linear-gradient(45deg,#ffffff04 0 1px,transparent 1px 6px),#1b302f;border:1px solid #49605c;box-shadow:3px -3px #192725,3px -3px 0 1px #344541,6px -6px #172120,6px -6px 0 1px #2a3a37;transform:rotate(10deg)}
.controls{border-top:1px solid var(--edge);display:flex;align-items:center;justify-content:center;gap:24px;padding:18px 28px 20px;min-width:0}.stake-section{width:300px;flex-shrink:0}.label{display:block;font-size:10px;color:var(--muted);line-height:14px;font-weight:700;margin-bottom:8px}.label span{font-size:9px;margin-left:6px}.stake-row{display:flex;align-items:stretch;gap:8px;height:44px}.money-input{display:flex;align-items:center;gap:8px;flex:1;min-width:0;height:44px;background:var(--card);border:1px solid var(--edge2);border-radius:12px;padding:0 12px}.money-input>span{color:var(--muted);font-weight:800;font-size:17px}.money-input input{font-size:17px;font-weight:800;width:100%;height:42px}.money-input:focus-within{border-color:#6d9389}.money-input:has(input:disabled){opacity:.55}.secondary{display:flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;min-height:44px;padding:0 16px}.action{border-radius:13px;min-height:60px;position:relative;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:800;border:1px solid #ffffff38;overflow:hidden;box-shadow:inset 0 1px #ffffff65,0 3px var(--shadow,#0c7958);transition:filter .15s,transform .15s;flex-shrink:0;color:var(--ink,#06251b);background:linear-gradient(125deg,var(--light,#58e8b4),var(--solid,#30c692))}.action:hover:not(:disabled){filter:brightness(1.07);border-color:#ffffff70}.action:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px #ffffff65,0 1px var(--shadow,#0c7958)}.blue{--light:#8cdcf8;--solid:#44bde7;--shadow:#1b718e;--ink:#07222c}.start-area{display:flex;align-items:center;justify-content:space-between;gap:24px;flex:0 1 600px;min-width:0}.start-note{display:flex;flex-direction:column;gap:8px;white-space:nowrap}.start-note b{font-size:11px;color:#abb5c5;font-weight:600}.start-note span{font-size:10px;color:#6e788c}.start-button{width:278px;min-height:64px;gap:12px;padding:8px 16px}.start-button span{font-size:12px}.start-button b{font-size:22px}.start-button small{font-size:9px;line-height:14px}.start-button.profit span,.start-button.profit b,.start-button.profit svg{display:none}.start-button.profit small{font-size:16px;position:relative;z-index:1;display:block!important}.start-button.profit:after{content:'';position:absolute;inset:1px;background:linear-gradient(110deg,transparent 35%,#fff9 50%,transparent 65%);background-size:230px 100%;background-repeat:no-repeat;animation:sweep 1s linear infinite;pointer-events:none}.decisions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:500px;align-self:center}.decisions>button{height:60px;min-width:0;flex-direction:column;gap:4px;padding:5px 8px}.decisions svg{width:22px;height:22px}.decisions span{font-size:11px}.insurance{display:grid;grid-template-columns:1fr 112px 112px;gap:10px;align-items:center;width:500px}.insurance>span{font-size:12px;font-weight:700}.insurance small{display:block;color:var(--muted);font-size:10px;margin-top:8px}.insurance .action,.insurance .secondary{height:60px;font-size:11px;padding:8px}.footer{display:flex;justify-content:space-between;align-items:center;padding:13px 2px;color:#71788d;font-size:10px;gap:8px}.footer .text-tool{font-size:10px}.receipt{position:absolute;z-index:4;top:50%;left:50%;transform:translate(-50%,-50%);width:220px;display:flex;align-items:center;flex-direction:column;gap:7px;padding:14px 18px;background:#102c24f2;border:1px solid #35d59b65;border-radius:14px;box-shadow:0 12px 50px #0007,0 0 45px #35d59b18;pointer-events:none;animation:receipt .5s cubic-bezier(.2,.9,.3,1.1) both}.receipt small{font-size:10px;letter-spacing:.12em;color:#a6dcc8}.receipt strong{color:var(--green);font-size:29px;font-weight:800}.receipt>span{font-size:10px;color:#a6bdb2}.particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.spark{position:absolute;width:4px;height:4px;background:var(--green);border-radius:1px;left:50%;top:50%;animation:spark 1.2s ease-out both;box-shadow:0 0 6px #35d59b5c}.clearing .card{opacity:0;transform:translateY(-12px);transition:opacity .35s,transform .35s}
@keyframes deal{from{opacity:0;transform:translate(90px,-45px) rotate(12deg)}to{opacity:1;transform:none}}@keyframes receipt{from{opacity:0;scale:.88}to{opacity:1;scale:1}}@keyframes sweep{from{background-position:-230px}to{background-position:300px}}@keyframes spark{to{transform:translate(var(--dx),var(--dy)) rotate(160deg);opacity:0}}
dialog{width:520px;max-width:calc(100% - 32px);max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--edge);border-radius:20px;color:var(--text);background:var(--surface);box-shadow:0 25px 90px #0008;overflow:hidden}dialog::backdrop{background:#03060cb5;backdrop-filter:blur(6px)}.modal-header{height:74px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--edge)}.modal-header h2{font-size:20px;font-weight:800;outline:none}.modal-body{padding:22px;max-height:calc(100dvh - 124px);overflow:auto;overscroll-behavior:contain;line-height:1.8}.info-card{border:1px solid var(--edge);background:var(--card);border-radius:14px;padding:18px;margin-bottom:16px}.info-card h3{font-size:13px;margin-bottom:12px}.info-card p,.muted{color:var(--muted);font-size:12px;line-height:1.9}.info-card:last-child{margin-bottom:0}.help-demo{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 0 22px;padding:6px}.help-card{width:62px;height:88px;border-radius:7px;background:#edf0f7;color:#172338;font-size:23px;font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center}.help-card:first-child{transform:rotate(-8deg)}.help-card.red{color:#cc4160;transform:rotate(8deg)}.help-demo>strong{color:var(--green);font-size:23px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:24px}.stats small{display:block;color:var(--muted);font-size:10px;margin-bottom:7px}.stats b{font-size:20px;line-height:1.3;display:block}.modal-body>.muted{margin-top:16px}.form-field{display:flex;flex-direction:column;gap:8px}.form-field label{font-size:12px}.form-field input{height:44px;min-height:44px;border:1px solid var(--edge2);border-radius:10px;background:var(--bg);padding:0 12px;width:100%;font-size:12px}.action-row{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.wide{width:100%;margin-top:16px}.preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.preset-grid button{height:44px;border-radius:10px}.record-row{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;min-height:64px;border-radius:12px;margin-bottom:8px;text-align:left;gap:16px}.record-row span{display:flex;flex-direction:column;gap:5px}.record-row small{color:var(--muted);font-size:10px}.positive{color:var(--green)}.negative{color:var(--red)}.history-empty{text-align:center;padding:36px 0 44px;color:var(--muted)}.detail-hand{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:12px}.detail-hand strong{font-size:14px;letter-spacing:.1em}.toast{position:fixed;bottom:34px;left:50%;transform:translateX(-50%);padding:12px 20px;border:1px solid var(--edge2);border-radius:12px;background:#242a36;z-index:30;font-size:12px;max-width:calc(100% - 32px);text-align:center}.lobby{max-width:1120px;margin:60px auto;padding:0 24px}.eyebrow{color:var(--green);font-size:10px;letter-spacing:.1em}.lobby h2{font-size:32px;margin:16px 0 12px}.lobby p{color:var(--muted);font-size:12px}.lobby-game{width:280px;height:260px;border-radius:18px;background:radial-gradient(ellipse at 50% 0,#35d59b23,transparent 80%),var(--surface);margin-top:32px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}.lobby-game svg{height:70px;width:70px;color:var(--green);stroke-width:1.3;margin-bottom:10px}.lobby-game strong{font-size:20px}.lobby-game>span{color:var(--muted);font-size:10px;letter-spacing:.15em}.lobby-game small{color:var(--green);margin-top:10px}.lobby-note{margin-top:24px}
@media(min-width:761px) and (max-width:1160px){.start-note{display:none}.start-area{flex:0 1 350px}.start-button{width:100%}.controls{gap:20px}.stake-section{width:280px}.decisions{width:460px}}
@media(min-width:761px) and (max-height:800px){.footer{padding-top:9px;padding-bottom:9px}.table{padding-top:10px;padding-bottom:10px;grid-template-rows:1fr 50px 1fr}.dealer-note{margin-top:5px}.cards{height:clamp(76px,calc((100dvh - 450px)/2),125px)}}
@media(max-width:760px){html{overscroll-behavior-y:contain}.site{display:none;height:50px;padding:0 12px;gap:20px}.brand{font-size:17px}.site nav{gap:16px;font-size:12px}.site nav a:nth-child(n+3){display:none}.site-wallet{display:none}.page{margin:0;padding:0;max-width:none}.game-header{height:58px;padding:0 8px;gap:5px}.identity{gap:4px}.game-logo,.title-help span,.desktop-tool{display:none}.title-help{font-size:15px}.mode{font-size:8px;padding:3px 5px}.mobile-balance{display:flex;align-items:flex-end;flex-direction:column;gap:3px;margin-left:auto}.mobile-balance small{font-size:8px;color:var(--muted)}.mobile-balance b{font-size:11px}.tools{gap:2px}.square{border-radius:10px}.tools .square svg{width:19px;height:19px}.game-frame{height:calc(100svh - 112px - env(safe-area-inset-bottom,0px));min-height:376px;border-radius:0;border-left:0;border-right:0;grid-template-rows:44px minmax(0,1fr) 142px}.recent{padding:0 12px;gap:8px}.recent-label{font-size:9px}.empty{font-size:9px}.chip{min-width:48px;font-size:10px;padding:0 8px}.mobile-fair{display:flex;font-size:10px;padding:0 4px}.record-button{font-size:10px;gap:4px}.record-button svg{width:16px;height:16px}.table{padding:12px 18px 10px;grid-template-rows:1fr 54px 1fr}.table-ring{width:96%;height:78%;top:12%}.lane-label{font-size:11px;height:22px;margin-bottom:6px;gap:8px}.lane-label small{font-size:7px}.score{font-size:11px;padding:2px 7px;line-height:16px}.cards{height:clamp(67px,calc((100svh - 490px)/2),126px);padding:0 8px}.corner{font-size:16px;top:5px;left:6px}.corner small{font-size:11px;margin-top:1px}.corner.bottom{inset:auto 6px 5px auto}.suit{font-size:34px}.face,.back{border-radius:7px}.back{box-shadow:inset 0 0 0 4px #172d2e,inset 0 0 0 5px #7eb9a940}.back>i{width:24px;height:24px;font-size:12px}.dealer-note{font-size:8px;line-height:12px;margin-top:6px}.table-message{gap:6px}#message{font-size:14px}#subMessage{font-size:9px}.hand-bottom{font-size:9px;margin-top:6px;line-height:14px;height:14px}.hand-bottom b{font-size:9px}.player-hand{padding:4px 10px 6px}.shoe{right:20px;top:45%;font-size:6px;gap:8px}.shoe i{width:22px;height:31px;box-shadow:2px -2px #192725,2px -2px 0 1px #344541,4px -4px #172120,4px -4px 0 1px #2a3a37}.players{gap:8px}.players.split-hands{gap:6px;align-items:center;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding:3px 2px;scrollbar-width:thin}.split-hands .player-hand{flex:0 0 calc(50% - 3px);max-width:none;padding:4px 5px 6px}.split-hands .cards{height:clamp(62px,calc((100svh - 490px)/2),106px)}.split-hands .card{--overlap:-24px}.split-hands .lane-label small{display:none}.controls{padding:12px 16px 16px;display:grid;grid-template-rows:62px 44px;gap:8px;align-items:stretch;justify-content:stretch}.stake-section{width:100%}.label{line-height:12px;margin-bottom:6px}.stake-row{gap:8px;height:44px}.money-input{border-radius:10px}.start-area{width:100%;display:flex}.start-note{display:none}.start-button{width:100%;min-height:44px;height:44px;border-radius:12px;gap:12px;padding:5px 12px}.start-button span{font-size:12px}.start-button b{font-size:20px}.start-button svg{width:18px;height:18px}.start-button.profit small{font-size:13px}.decisions{width:100%;gap:8px;align-self:stretch}.decisions>button{height:44px;min-height:44px;gap:5px;flex-direction:row;padding:4px;font-size:10px;border-radius:10px}.decisions svg{width:16px;height:16px}.decisions span{font-size:11px}.insurance{grid-template-columns:1fr 80px 80px;width:100%;gap:8px}.insurance>span{font-size:10px;line-height:14px}.insurance small{font-size:8px;margin-top:2px}.insurance .action,.insurance .secondary{height:44px;min-height:44px;border-radius:10px;padding:4px;font-size:10px}.footer{height:calc(54px + env(safe-area-inset-bottom,0px));padding:0 12px env(safe-area-inset-bottom,0px);font-size:8px;margin-bottom:0;align-items:center}.footer .text-tool{font-size:9px}.receipt{width:190px;padding:10px 14px;gap:5px}.receipt strong{font-size:24px}.receipt small{font-size:9px}.receipt>span{font-size:9px}dialog{max-width:calc(100% - 24px);max-height:calc(100dvh - 40px)}.modal-header{height:66px;padding:0 18px}.modal-header h2{font-size:20px}.modal-body{padding:18px;max-height:calc(100dvh - 108px);padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}.info-card{padding:16px}.stats{gap:24px 14px}.stats b{font-size:19px}.lobby{margin:35px auto}.lobby-game{width:100%;max-width:320px}.toast{font-size:11px;bottom:24px}}
@media(max-width:360px){.site nav{gap:14px}.game-header{gap:4px}.title-help{font-size:15px}.mobile-balance b{font-size:10px}.mode{padding:3px 4px}.recent{gap:6px;padding:0 10px}.recent-label{font-size:8px}.table{padding-left:12px;padding-right:12px}.controls{padding-left:12px;padding-right:12px}.decisions{gap:6px}.decisions>button{gap:3px}.decisions svg{width:14px;height:14px}.decisions span{font-size:10px}}
@media(max-width:760px) and (max-height:650px){.table{padding-top:6px;padding-bottom:6px;grid-template-rows:1fr 40px 1fr}.lane-label{margin-bottom:4px;height:20px}.dealer-note{margin-top:4px;font-size:7px}.cards{height:66px}.suit{font-size:25px}.corner{font-size:12px;left:5px;top:4px}.corner small{font-size:8px}.corner.bottom{right:5px;bottom:4px}.table-message{gap:3px}#message{font-size:12px}#subMessage{font-size:8px}.hand-bottom{margin-top:4px;font-size:8px}.split-hands .cards{height:62px}.shoe{display:none}.receipt{padding:8px;width:168px;gap:3px}.receipt strong{font-size:21px}}
@media(max-width:760px) and (orientation:landscape){.game-frame{min-height:420px}.cards{height:90px}.split-hands .cards{height:84px}.footer{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.start-button.profit:after{display:none}.particles{display:none}}
/* Keep both hands within their fixed tracks at each family viewport. */
@media(min-width:761px){.cards{height:clamp(76px,calc((100dvh - 560px)/2),142px)}.split-hands .cards{height:clamp(70px,calc((100dvh - 560px)/2),115px)}}
.card.placeholder{opacity:.62}.player-hand{flex-shrink:1}.table-message{align-self:stretch}
@media(max-width:760px){.dealer-note{display:none}.cards{height:clamp(62px,calc((100svh - 566px)/2),126px)}.split-hands .cards{height:clamp(58px,calc((100svh - 566px)/2),106px)}}
@media(max-width:760px) and (max-height:720px){.hand-bottom{display:none}.player-hand{padding-top:2px;padding-bottom:2px}.table .lane-label{height:20px;margin-bottom:4px}.cards{height:clamp(58px,calc((100svh - 512px)/2),100px)}.split-hands .cards{height:clamp(54px,calc((100svh - 512px)/2),90px)}}
@media(max-width:760px) and (max-height:620px){.table{grid-template-rows:1fr 30px 1fr}.cards,.split-hands .cards{height:48px}.table .lane-label{height:18px;margin-bottom:4px}.table-message{gap:2px}#message{font-size:11px}#subMessage{font-size:7px}.corner{font-size:10px;left:4px;top:3px}.corner small{font-size:7px}.corner.bottom{right:4px;bottom:3px}.suit{font-size:20px}.back>i{width:18px;height:18px;font-size:9px}.players .player-hand{padding-top:0;padding-bottom:0}}
/* A compact win receipt leaves every final card and hand score visible. */
.receipt{width:auto;min-width:210px;padding:9px 18px;flex-direction:row;gap:12px;top:50%;border-radius:11px}.receipt small{letter-spacing:.04em}.receipt strong{font-size:24px;white-space:nowrap}.receipt>span{display:none}
@media(max-width:760px){.receipt{min-width:175px;padding:7px 13px;gap:10px}.receipt small{font-size:9px}.receipt strong{font-size:22px}}
@media(max-width:760px) and (max-height:620px){.receipt{min-width:145px;padding:3px 10px;gap:8px;border-radius:8px}.receipt small{font-size:8px}.receipt strong{font-size:17px}}
@media(max-width:760px) and (max-height:620px) and (orientation:portrait){.game-frame{min-height:372px}}
.money-input input{height:44px}
.table:has(.receipt:not([hidden])) .table-message{opacity:0}.start-button.profit span{display:inline;font-size:11px}.start-button.profit small{font-size:13px}
@media(max-width:360px){.start-button.profit span{font-size:10px}.start-button.profit small{font-size:12px}}

/* Account/recovery controls retain the existing family entry points. */
.acct{display:flex;align-items:center;gap:8px}.acct button{min-height:44px;border-radius:10px;padding:0 12px;font-size:11px}.addr{max-width:110px;overflow:hidden;text-overflow:ellipsis;font-size:10px;color:var(--muted)}.note,#blackjackStatus{padding:10px 18px;border-bottom:1px solid var(--edge);color:var(--muted)}#blackjackStatus{display:flex;align-items:center;gap:8px;flex-wrap:wrap}#blackjackStatus button{min-height:44px;padding:0 12px;border-radius:8px}#clock{font-size:9px;color:var(--muted)}.mode.real{color:var(--green);background:#35d59b10;border-color:#35d59b44}.record-row>span:last-child{text-align:right}.record-row>span{min-width:0}.record-row small{overflow-wrap:anywhere}.modal-body input{width:100%}.verification{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);font-size:11px}.start-button.wager-profit-active:after{content:'';position:absolute;inset:1px;background:linear-gradient(110deg,transparent 35%,#fff9 50%,transparent 65%);background-size:230px 100%;background-repeat:no-repeat;animation:sweep 1s linear infinite;pointer-events:none}.start-button.wager-profit-active #startAmount{display:none}.start-button.wager-profit-active{flex-wrap:wrap;gap:4px 9px}.start-button.wager-profit-active #buttonProfit{display:block;font-size:12px;position:relative;z-index:1}.form-field .action-row{margin-top:4px}.players.split-hands .player-hand{flex-shrink:0}.receipt.loss{background:#20232af2;border-color:var(--edge2)}.receipt.loss strong{color:var(--text)}
@media(max-width:760px){.acct{margin-left:auto}.addr{max-width:80px}.acct button{padding:0 8px;font-size:10px}.site{gap:12px}.site nav{gap:12px}.site nav a:not(:first-child){display:none}.site-wallet{display:none}.start-button.wager-profit-active #buttonProfit{font-size:11px}.players.split-hands .player-hand{flex:0 0 46%}#blackjackStatus{font-size:11px}.modal-header{height:66px;padding:0 18px}.modal-body{padding:18px;max-height:calc(100dvh - 114px)}}
@media(prefers-reduced-motion:reduce){.start-button.wager-profit-active:after{display:none}.start-button.wager-profit-active{outline:2px solid var(--green);outline-offset:-3px}.card.arriving{outline:1px solid #8ec9b7}}

/* The decision clock uses the table margin, preserving the two-line center. */
#clock{position:absolute;right:16px;top:10px;font-size:9px;white-space:nowrap}
@media(max-width:760px){#clock{right:10px;top:8px;font-size:8px}}

/* Fairness evidence stays available on demand, with the family field spacing. */
.modal-body details{border-top:1px solid var(--edge);margin-top:12px;padding-top:8px}.modal-body summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--muted);font-size:12px}.modal-body details .verification{padding-top:8px}.form-field .action-row{margin-top:4px}.info-card>.action-row{margin-top:12px}

/* Mobile wager entry above the full-width game actions. */
@media(max-width:760px){.controls .money-input{flex:0 0 104px;padding:0 6px;gap:3px}.controls .stake-row{gap:4px}.controls .start-button{width:100%}}

#autoUnavailable{display:none}

@media(max-width:760px){.controls .stake-row .money-input{flex:0 1 104px}.controls .stake-row .square{flex:1;min-width:44px}}
@media(max-width:760px){.controls{grid-template-columns:minmax(0,1fr) 52px}.controls .stake-section{grid-column:1;grid-row:1;min-width:0;width:auto}#autoUnavailable{display:flex;grid-column:2;grid-row:1;align-items:center;justify-content:center;flex-direction:column;gap:3px;width:52px;height:58px;min-width:0;padding:4px;border:1px solid #343849;border-radius:10px;background:#1b1d27;color:#9096ab}#autoUnavailable svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#autoUnavailable span{font-size:8px;white-space:nowrap}.controls .start-area,.controls .decisions,.controls .insurance{grid-column:1/-1;grid-row:2}}

@media(max-width:760px){.controls{column-gap:8px}.controls .money-input input{padding:0}}
@media(max-width:350px){.controls .money-input{padding:0 1px;gap:1px}}

/* Fairness-only field/action rhythm and explicit receipt tools. */
#modal[data-fairness="settings"] .section-card,#modal[data-fairness="settings"] .card,#modal[data-fairness="settings"] .info-card{margin-bottom:14px}#modal[data-fairness="settings"] .form-field,#modal[data-fairness="settings"] .seed-field,#modal[data-fairness="settings"] .fair-field{display:block;margin:0}
#modal[data-fairness="settings"] label{display:block;font-size:10px;font-weight:700;color:#9096ab;line-height:1.5;margin:0 0 8px}#modal[data-fairness="settings"] input[maxlength]{display:block;width:100%;min-width:0;height:44px;min-height:44px;padding:0 12px;font-size:13px}
#modal[data-fairness="settings"] .action-row,#modal[data-fairness="settings"] .fair-buttons,#modal[data-fairness="detail"] .action-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}#modal[data-fairness="settings"] .primary,#modal[data-fairness="detail"] .primary{background:#eef0f7;color:#14161f}
#modal[data-fairness="settings"] .form-field>small,#modal[data-fairness="settings"] .seed-field>small,#modal[data-fairness="settings"] .fair-field>small{display:block;margin-top:8px;font-size:11px;line-height:1.7;color:#9096ab}#modal[data-fairness="settings"] button,#modal[data-fairness="detail"] button{min-height:44px;font-size:12px}#modal[data-fairness="settings"] p:empty{display:none}
#modal .receipt-export{margin-top:12px;overflow-wrap:anywhere}#modal .receipt-export p{font-size:12px;line-height:1.8;color:#9096ab;margin:0}#modal .receipt-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}#modal .receipt-download,#modal .receipt-copy{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border:1px solid #343849;border-radius:10px;background:#1b1d27;color:#eef0f7;font:700 12px Sora,sans-serif;text-decoration:none}#modal .receipt-export textarea{display:block;width:100%;max-width:100%;min-height:140px;margin-top:12px;padding:12px;border:1px solid #343849;border-radius:9px;background:#0b0c11;color:#eef0f7;font:12px monospace;user-select:text}
#modal[data-fairness="settings"] button,#modal[data-fairness="detail"] button{border-radius:10px;font-weight:700;padding:9px 14px}#modal[data-fairness="settings"] .section-card,#modal[data-fairness="settings"] .card,#modal[data-fairness="settings"] .info-card{padding:17px}#modal[data-fairness="settings"] p{font-size:13px;line-height:1.8}@media(max-width:760px){#modal[data-fairness="settings"] .section-card,#modal[data-fairness="settings"] .card,#modal[data-fairness="settings"] .info-card{padding:15px}}

.mode.real{color:#ffc94d;background:#ffc94d14;border-color:#ffc94d38}

/* HEADER-BALANCE-INT-01：窄屏顶栏余额只显示整数，截断不进位（setHeaderBalance，见 public/trade/wallet-connect.js）。 */
.hb-narrow{display:none}
@media(max-width:760px){.mobile-balance .hb-wide{display:none}.mobile-balance .hb-narrow{display:inline}}
