#modal .mbox.leisure-shell{max-width:740px;background:#172f3b;color:#fff2cf;border:3px solid #69bba8;border-radius:16px;padding:18px;font-family:system-ui,sans-serif;line-height:1.45;max-height:calc(100dvh - 20px);overflow:auto;box-sizing:border-box}#modal .leisure-shell h2{font-family:inherit;color:#ffe399;font-size:25px;margin:5px 0 10px}#modal .leisure-shell p{font-family:inherit}#modal .leisure-shell .kick{color:#88d8c0;font-size:11px;letter-spacing:2px}#modal .leisure-shell .note{color:#c5d7d7;font-size:12px}.leisure-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.leisure-wallet{white-space:nowrap;background:#fff0ba;color:#3d3822;padding:8px 12px;border-radius:10px;font-weight:800}.leisure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.leisure-shell button{touch-action:manipulation;cursor:pointer}.leisure-shell .btn{font-family:inherit;letter-spacing:0;min-height:44px;white-space:normal}.leisure-shell .btn:disabled{opacity:.5;cursor:default}.leisure-shell button:focus-visible{outline:3px solid #fff0a8;outline-offset:3px}.leisure-tile{border:1px solid #508a88;border-radius:10px;color:#fff4d8;background:#274854;padding:12px;text-align:left;min-height:75px;font:inherit}.leisure-tile strong{display:block;color:#ffe2a1;font-size:16px}.leisure-tile small{display:block;color:#c1ded4;margin-top:3px}.leisure-room{display:block;width:100%;max-height:44dvh;object-fit:contain;background:#12202f;border:2px solid #477b78;border-radius:8px;image-rendering:pixelated;touch-action:none}.leisure-controls{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:9px 0}.leisure-controls button{min-height:44px;min-width:44px;border-radius:7px;border:1px solid #59938c;background:#234752;color:#fff4d8;font-size:18px}.leisure-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.leisure-actions .btn{flex:1;min-width:110px}.leisure-status{min-height:26px;color:#b4efc8;font-weight:650}.leisure-reels{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:#392d49;border:4px solid #e3b663;padding:16px;border-radius:14px;margin:16px 0;box-shadow:inset 0 0 0 3px #786148}.leisure-reels span{display:grid;place-items:center;min-height:85px;background:#fff1d0;color:#355756;border-radius:6px;font-size:42px;font-weight:900}.leisure-payouts{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;font-size:12px;text-align:center}.leisure-bets{display:flex;gap:10px}.leisure-bets button[aria-pressed=true]{outline:3px solid #97e1af;background:#397565}.leisure-memory{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:15px 0}.leisure-card{height:65px;border:2px solid #71a9a2;border-radius:9px;background:repeating-linear-gradient(45deg,#315e69,#315e69 8px,#376974 8px,#376974 16px);color:#fff1bc;font-size:30px}.leisure-card.open{background:#ffe9b5;color:#254d53}.leisure-card.matched{background:#295f50;color:#adf2ba;border-color:#72c194}.leisure-board{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;background:#3a7390;padding:9px;border-radius:12px;margin:12px 0}.leisure-board button{aspect-ratio:1;min-height:32px;border:0;border-radius:50%;background:#183545;box-shadow:inset 0 2px 5px #071e2c;color:transparent}.leisure-board .p1{background:#f5c85a}.leisure-board .p2{background:#f48282}.leisure-game-canvas{display:block;max-width:100%;width:400px;max-height:43dvh;object-fit:contain;image-rendering:pixelated;margin:10px auto;touch-action:none;background:#122c3a;border-radius:12px}.leisure-turn{padding:10px;background:#294a53;border-radius:9px;font-weight:700}.leisure-meter{height:20px;border-radius:10px;background:#274957;overflow:hidden;margin:12px 0}.leisure-meter i{display:block;height:100%;background:#86d1a8}.leisure-map-legend{display:flex;flex-wrap:wrap;gap:8px 15px;font-size:13px;margin:12px 0}.leisure-map-legend span{padding:4px 8px;border-radius:5px;background:#294957}.leisure-rules{background:#203e48;border-radius:8px;padding:10px;margin:10px 0}.leisure-shell .leisure-footer{font-size:12px;color:#c6d6cf}.leisure-room-caption{font-size:12px;color:#c0d7cf;text-align:center;margin:5px 0}@media(max-width:480px){#modal .mbox.leisure-shell{padding:12px;width:calc(100vw - 16px)}.leisure-head h2{font-size:21px}.leisure-wallet{font-size:12px;padding:7px}.leisure-reels{padding:10px}.leisure-reels span{min-height:65px;font-size:34px}.leisure-grid{gap:7px}.leisure-card{height:56px}.leisure-tile{padding:10px}.leisure-payouts{font-size:11px}}@media(max-height:520px) and (orientation:landscape){.leisure-room{max-height:40dvh}.leisure-game-canvas{max-height:48dvh}.leisure-card{height:42px}.leisure-memory{max-width:400px;margin:10px auto}.leisure-board{max-width:380px;margin:10px auto}.leisure-reels span{min-height:55px}.leisure-head h2{font-size:20px}}

/* Intrinsic aspect ratios keep pointer coordinates aligned, also in landscape. */
.leisure-room{width:min(100%,64dvh);height:auto;max-height:none;margin-inline:auto}.leisure-game-canvas{height:auto;max-height:none}#dart-canvas{width:min(400px,100%,43dvh)}#beach-canvas{width:min(400px,100%,65dvh)}

.memory-reward{display:flex;align-items:center;gap:14px;background:#fff0ba;color:#324c45;padding:12px;border-radius:10px;margin:12px 0}.memory-reward strong{font-size:24px;white-space:nowrap}.memory-reward span{font-size:12px}.memory-large{grid-template-columns:repeat(6,minmax(0,1fr))}.memory-large .leisure-card{height:52px;font-size:25px}#connect-join-form{margin:18px 0}#connect-code{min-width:0;flex:1;width:130px;min-height:44px;background:#fff1ce;color:#254554;border:2px solid #82c8af;border-radius:8px;font:700 20px monospace;padding:6px;text-transform:uppercase}.connect-code{text-align:center;font-size:11px;letter-spacing:2px;margin:12px}.connect-code strong{display:block;font:700 28px monospace;letter-spacing:4px;color:#ffe6a9;margin:5px}.leisure-board button:disabled{cursor:default;opacity:1}@media(max-width:420px){.memory-reward{gap:9px}.memory-reward strong{font-size:19px}.memory-large{gap:5px}.memory-large .leisure-card{height:44px;font-size:22px}}

.leisure-tile[aria-current=true]{border:2px solid #a4f0c2;background:#35685c}.casino-stops,.casino-account{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.casino-account{padding:16px;background:#233f4a;border-radius:10px;text-align:center}.casino-account b{display:block;font-size:23px;color:#ffe19a}.casino-stake{color:#ffe09c;font-weight:750;text-align:center}.casino-table{border:7px solid #a98852;border-radius:45px 45px 24px 24px;background:radial-gradient(ellipse at center,#367e60,#1a4f42);padding:16px;text-align:center;box-shadow:inset 0 0 0 2px #dfc795}.casino-dealer{font-size:11px;letter-spacing:3px}.casino-dealer span{display:block;font-size:30px;color:#e8cfa5}.casino-hand-label{margin:9px 0 5px;font-size:14px}.casino-hand{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;min-height:84px}.casino-card{display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;height:77px;border-radius:7px;background:#fff1d2;color:#23333b;box-shadow:0 3px 6px #0d2c37;font-size:22px;flex-shrink:0}.casino-card i{font-size:27px;font-style:normal}.casino-card.red{color:#b64a53}.casino-card.back{background:repeating-linear-gradient(45deg,#295a6d,#295a6d 6px,#3e7385 6px,#3e7385 12px);border:2px solid #dec492;color:#f4d58d;box-sizing:border-box}.casino-table-rule{font-size:13px;color:#d4c894;letter-spacing:2px;padding:12px}.casino-table-rule small{letter-spacing:0}.spinning{filter:blur(.5px)}.stopped{box-shadow:inset 0 0 0 3px #81bb8b}.dart-layout{display:grid;grid-template-columns:minmax(0,360px) minmax(180px,1fr);gap:20px;align-items:center}.casino-dart-canvas{display:block;width:100%;height:auto;aspect-ratio:360/440;touch-action:none;user-select:none;border:2px solid #507980;border-radius:15px;box-sizing:border-box}.dart-history{display:flex;flex-wrap:wrap;gap:5px}.dart-history span{background:#2d5360;color:#ffe2a2;border-radius:6px;padding:5px;min-width:22px;text-align:center}.dart-panel .note{line-height:1.5}@media(max-width:560px){.dart-layout{display:flex;flex-direction:column;gap:10px}.casino-dart-canvas{width:min(100%,320px,45dvh)}.dart-panel{width:100%}.dart-panel .leisure-turn{padding:7px}.dart-panel .note{margin:5px 0}.dart-panel #dart-status{margin:8px 0}.casino-table{padding:12px;border-width:5px}.casino-card{width:45px;height:65px;font-size:19px}.casino-hand{min-height:67px}}@media(max-height:520px) and (orientation:landscape){.dart-layout{display:grid;grid-template-columns:minmax(160px,250px) 1fr;gap:12px}.casino-dart-canvas{width:min(100%,58dvh)}.casino-table{padding:8px}.casino-card{height:55px;width:41px}.casino-hand{min-height:57px}.casino-table-rule{padding:5px}.casino-dealer span{display:none}}

/* V181: full reel strips travel vertically behind a curved, three-row window. */
.slot-machine{--slot-cell:clamp(52px,12vw,84px);margin:16px auto;max-width:490px;padding:12px;border:4px solid #dcad60;border-radius:20px;background:linear-gradient(130deg,#503855,#261f38);box-shadow:inset 0 0 0 2px #90653e,0 10px 0 #112530}
.slot-marquee{display:flex;justify-content:space-around;align-items:center;font-weight:900;letter-spacing:3px;color:#ffe7a0;text-shadow:0 0 12px #f6bf7280;margin:2px 0 12px}.slot-marquee span{color:#99e3b6}.slot-window{position:relative;padding:4px;border:3px solid #967441;border-radius:8px;background:#151d28;overflow:hidden}.slot-reel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.slot-reel{height:calc(3 * var(--slot-cell));overflow:hidden;position:relative;background:linear-gradient(90deg,#d1cba9,#fff8db 18%,#fffde9 50%,#e3dcba 85%,#aea786);border-radius:5px}.slot-reel:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(#16232a75,transparent 27%,transparent 73%,#16232a75);box-shadow:inset 0 0 12px #172b3140}.slot-symbol{height:var(--slot-cell);display:grid;place-items:center;font:900 calc(var(--slot-cell) * .67)/1 Georgia,serif;border-bottom:1px solid #947e5724;box-sizing:border-box;text-shadow:0 2px 0 #fff5,0 3px 3px #44331133}.symbol-0{color:#297459}.symbol-1{color:#b87b19}.symbol-2{color:#557bba}.symbol-3{color:#905b9c}.symbol-4{color:#c5454c}.rolling .slot-strip{animation:slot-roll 480ms linear infinite;animation-delay:var(--reel-delay);will-change:transform;filter:blur(.7px)}.settling .slot-strip{animation:slot-settle 620ms cubic-bezier(.1,.72,.21,1) both}.slot-plaque{text-align:center;color:#d2e1d0;font-size:11px;font-weight:800;letter-spacing:2px;padding-top:11px}.slot-hit{background:#ffd46275;box-shadow:inset 0 0 0 3px #df9b28}.slot-line-overlay{position:absolute;inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);pointer-events:none;filter:drop-shadow(0 0 3px #eab34e)}.slot-line-overlay polyline{stroke:#ffdf69;stroke-width:4;fill:none;stroke-linecap:round;opacity:.85}.slot-win-list{list-style:none;padding:0}.slot-win-list li{display:flex;justify-content:space-between;gap:8px;background:#2b554f;border-radius:6px;padding:7px 12px;margin:4px 0;color:#fce9b4}.connect-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.connect-levels b{display:block;font-size:14px;margin:10px 0;color:#a7e5b9}.connect-choices .leisure-tile{min-height:110px}
@keyframes slot-roll{from{transform:translateY(calc(-5 * var(--slot-cell)))}to{transform:translateY(0)}}@keyframes slot-settle{from{transform:translateY(0)}80%{transform:translateY(calc(-3 * var(--slot-cell) - 5px))}to{transform:translateY(calc(-3 * var(--slot-cell)))}}
@media(max-width:440px){.connect-levels{grid-template-columns:1fr}.connect-levels .leisure-tile{display:grid;grid-template-columns:1fr 1.4fr;gap:3px;min-height:75px}.connect-levels b{margin:0;text-align:right}.connect-levels small{grid-column:1/-1}.slot-machine{padding:9px}.slot-marquee{font-size:14px;letter-spacing:2px}.casino-stops{gap:5px}.casino-stops .btn{padding-inline:6px;font-size:12px}.connect-choices{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.rolling .slot-strip{animation:none;filter:none}.settling .slot-strip{animation:none;transform:translateY(calc(-3 * var(--slot-cell)))}}

/* V182: a tangible board, sequential gravity drops and a settled winning line. */
.connect-frame{--connect-gap:6px;position:relative;max-width:490px;margin:12px auto 6px;padding:0 14px;isolation:isolate}.connect-lane{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--connect-gap);margin:0 12px;height:36px;align-items:center;text-align:center;font:700 11px monospace;color:#bddddd}.connect-lane>span{opacity:.62}.connect-aim{position:absolute;top:1px;left:calc((100% + var(--connect-gap)) / 7 * var(--aim-col));width:calc((100% - 6 * var(--connect-gap)) / 7);height:29px;border-radius:50%;opacity:0;transform:scale(.72);transition:left 130ms ease,opacity 130ms ease;box-shadow:inset 0 0 0 3px #fff4,0 3px 3px #061c3270}.connect-frame.is-aiming[data-ready=true] .connect-aim{opacity:1}.leisure-board.connect-board{position:relative;gap:var(--connect-gap);margin:0;padding:12px;border:2px solid #81b7c6;border-bottom-color:#285e7b;border-radius:12px;background:linear-gradient(140deg,#518fa9 0%,#387896 45%,#245975 100%);box-shadow:inset 0 2px 0 #b8e0e67a,inset 0 -5px 0 #1d4b67,0 8px 0 #143a53,0 12px 15px #0618246b;overflow:visible}.connect-board button,.connect-board button.p1,.connect-board button.p2{position:relative;display:block;min-height:0;aspect-ratio:1;padding:0;border:0;background:radial-gradient(circle at 45% 65%,#244b5c,#102d41 70%);box-shadow:inset 0 3px 5px #001421b0,0 1px 0 #81b4c1;overflow:visible;transition:box-shadow 120ms ease}.connect-board button:not(:disabled):hover,.connect-board button.is-column{box-shadow:inset 0 3px 5px #001421b0,0 0 0 2px #a7e9d77d}.connect-board button:focus-visible{outline:3px solid #ffecaf;outline-offset:2px}.connect-piece{position:absolute;inset:8%;display:block;border-radius:50%;z-index:2;box-shadow:inset 0 2px 2px #fff8,inset 0 -4px 3px #0003,0 2px 3px #05213499}.connect-piece:before{content:'';position:absolute;inset:15%;border:2px solid #ffffff52;border-bottom-color:#0002;border-radius:50%}.connect-piece:after{content:'';position:absolute;left:23%;top:15%;width:25%;height:10%;border-radius:50%;background:#fff8;transform:rotate(-25deg)}.connect-frame .side-1{background:radial-gradient(circle at 32% 24%,#fff1a3 0%,#fbd168 38%,#eda62e 78%,#b97619 100%)}.connect-frame .side-2{background:radial-gradient(circle at 32% 24%,#ffc6ad 0%,#f78c87 36%,#d65069 80%,#a43b55 100%)}.connect-piece.is-dropping{animation:connect-chip-drop var(--fall) cubic-bezier(.32,.06,.7,.45) var(--delay) both;will-change:transform}.connect-board button.is-last:not(.is-winning):after{content:'';position:absolute;inset:0;border:2px solid #fff5;border-radius:50%;opacity:0;pointer-events:none}.connect-frame.is-settled .connect-board button.is-last:after{opacity:1}.connect-frame.is-settled .connect-board .is-winning:after{content:'';position:absolute;inset:-3%;border:3px solid #fff1aa;border-radius:50%;box-shadow:0 0 12px #ffdc7c,0 0 0 1px #be8e42;z-index:3;pointer-events:none;animation:connect-win-glow 650ms ease-in-out 3}.connect-frame.is-settled.has-winner .connect-board button:not(.is-winning) .connect-piece{filter:saturate(.55);opacity:.6;transition:opacity 250ms ease}.connect-base{position:relative;z-index:-1;display:flex;justify-content:space-between;align-items:center;height:25px;margin:3px -8px 0;color:#b6d4dd;font:700 9px monospace;letter-spacing:2px}.connect-base i{display:block;width:48px;height:21px;border-radius:0 0 8px 8px;background:linear-gradient(#356e8b,#153e57);border:2px solid #71a5b2;box-shadow:0 4px 5px #0c233666}.connect-players{display:flex;justify-content:center;gap:22px;margin-top:6px;font-size:11px;color:#c1d3d4}.connect-players>span{display:flex;align-items:center;gap:6px}.connect-players .is-you{font-weight:800;color:#fff0c8}.connect-players i{width:12px;height:12px;border-radius:50%;box-shadow:inset 0 1px 0 #fffb}.connect-win-banner{visibility:hidden;max-height:0;overflow:hidden;text-align:center;color:#ffe599;font-weight:900;letter-spacing:1px;font-size:13px}.connect-frame.is-settled .connect-win-banner{visibility:visible;max-height:50px;padding-top:12px;animation:connect-win-reveal 350ms ease-out both}.connect-thinking:after{content:'● ● ●';display:inline-block;margin-left:10px;font-size:9px;letter-spacing:3px;color:#a4e4bd;animation:connect-think 750ms ease-in-out infinite}
@keyframes connect-chip-drop{0%{opacity:0;transform:translateY(calc(var(--drop-y) + var(--drop-gap))) scale(.97,1.02)}3%{opacity:1}72%{opacity:1;transform:translateY(0) scale(1.09,.91)}84%{transform:translateY(-15%) scale(.97,1.03)}94%{transform:translateY(0) scale(1.03,.97)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes connect-win-glow{0%,100%{transform:scale(1);box-shadow:0 0 9px #ffdc7c}50%{transform:scale(1.07);box-shadow:0 0 18px #ffe6a6}}@keyframes connect-win-reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes connect-think{50%{opacity:.3}}
@media(max-width:440px){.connect-frame{--connect-gap:4px;padding:0 5px}.leisure-board.connect-board{padding:10px}.connect-lane{margin-inline:10px;height:33px}.connect-board .connect-piece:before{border-width:1px}.connect-frame.is-settled .connect-board .is-winning:after{border-width:2px}.connect-win-banner{font-size:11px}}
@media(max-height:520px) and (orientation:landscape){.connect-frame{max-width:350px}.leisure-board.connect-board{max-width:none}.connect-lane{height:29px}.connect-players{margin-top:2px}}
@media(prefers-reduced-motion:reduce){.connect-piece.is-dropping,.connect-frame.is-settled .connect-board .is-winning:after,.connect-win-banner,.connect-thinking:after{animation:none!important}.connect-piece.is-dropping{opacity:1;transform:none}.connect-frame *{transition:none!important}}
