
:root{font-family:Segoe UI,Arial,sans-serif;color:#253c37;background:#eceee7}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:grid;place-items:center;padding:24px}button{font:inherit;cursor:pointer}main{width:min(900px,100%)}header{display:flex;align-items:center;gap:14px;margin-bottom:25px}.logo{background:#214e40;color:#fff;border-radius:14px;padding:12px 17px;font-size:27px}:is(h1,.brand-title){font:600 32px Georgia,serif;margin:0}header p{margin:6px 0;color:#66756d}.window{background:#fffdf6;border:1px solid #d6daca;border-radius:22px;overflow:hidden;box-shadow:0 20px 65px #253c3714}.bar{padding:17px 24px;border-bottom:1px solid #e0e2d8;display:flex;justify-content:space-between;font-size:14px}.badge{color:#66756d}.layout{display:grid;grid-template-columns:210px 1fr 170px;gap:22px;padding:25px}.label{font-size:11px;letter-spacing:1.7px;font-weight:700;color:#778176;margin:0 0 13px}.games{display:flex;flex-direction:column;gap:9px;height:300px;overflow-y:scroll;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#8b9f8b #edf0e6;padding:3px 7px 3px 3px}.games::-webkit-scrollbar{width:8px}.games::-webkit-scrollbar-track{background:#edf0e6;border-radius:8px}.games::-webkit-scrollbar-thumb{background:#8b9f8b;border-radius:8px}.games .game{flex-shrink:0}.game{border:1px solid #dbe0d5;background:transparent;padding:13px;text-align:left;border-radius:10px}.game.selected{background:#214e40;color:white;border-color:#214e40}.game small{display:block;font-size:11px;margin-top:5px;opacity:.7}.game:disabled{cursor:default;color:#90968d}.preview{background:radial-gradient(ellipse at top,#328c43,#17662e);border-radius:16px;min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;padding:24px}.cards{display:flex;margin:15px 0 24px;padding-left:10px}.card{width:65px;height:94px;border-radius:8px;background:#fffdf6;color:#243f35;border:1px solid #d1d8c9;box-shadow:0 5px 10px #0003;font:26px Georgia;padding:8px;margin-left:-10px;text-align:left;transform:rotate(-12deg)}.card:nth-child(2){transform:translateY(-9px)}.card:nth-child(3){transform:rotate(12deg)}.card span{display:block;font-size:32px;text-align:center}.preview :is(h2,:is(h1,.brand-title).game-title){font:32px Georgia;margin:0 0 7px}.preview p{font-size:13px;color:#d6e4d8;margin:0}.actions{display:flex;flex-direction:column;gap:9px}.actions button,.secondary{border:1px solid #dbe0d5;background:#f5f5eb;border-radius:9px;padding:12px;color:#344e43}.start{border:0;border-radius:9px;background:#eacb86;color:#253c37;font-weight:600;padding:13px 23px;margin-top:22px}.bottom{padding:18px 25px;border-top:1px solid #e0e2d8;color:#738074;font-size:13px;line-height:1.6}.foot{text-align:center;color:#7e887e;font-size:12px;margin-top:20px}dialog{border:1px solid #d7dbce;border-radius:17px;padding:27px;max-width:440px;width:calc(100% - 36px);color:#253c37;background:#fffdf6;box-shadow:0 20px 60px #0003}dialog::backdrop{background:#142e286b}dialog :is(h2,:is(h1,.brand-title).game-title){font:26px Georgia;margin-top:0}dialog p{line-height:1.65}dialog button{margin-top:12px}button:focus-visible{outline:3px solid #b69752;outline-offset:3px}select{font:inherit;padding:10px;border-radius:7px;border:1px solid #bac5b9;background:white;margin:10px 0;width:100%}@media(max-width:700px), (max-width:1000px) and (max-height:500px){.layout{grid-template-columns:1fr;padding:18px;gap:18px}.games{display:flex;height:240px}.actions{display:grid;grid-template-columns:repeat(2,1fr)}.preview{min-height:280px}body{padding:16px}:is(h1,.brand-title){font-size:28px}.bar{padding:16px}.game{padding:10px;font-size:13px}}
[hidden]{display:none!important}.table-view{width:min(1200px,100%)}.table-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.table-head :is(h2,:is(h1,.brand-title).game-title){font:30px Georgia;margin:0}.table-head p{margin:5px 0;color:#66756d}.table-tools{display:flex;gap:8px;flex-wrap:wrap}.table-tools button{margin:0}.table-tools button:disabled{opacity:.45;cursor:default}.table-scroll{overflow-x:auto;border-radius:18px}.felt{background:radial-gradient(ellipse at top,#328c43,#17662e);padding:24px;min-width:760px;min-height:530px;color:white}.table-top{display:flex;justify-content:space-between;align-items:start;gap:28px;margin-bottom:32px}.stock{display:flex;padding-right:20px}.stock .playing-card{margin-right:-38px}.playing-card{width:70px;height:100px;flex-shrink:0;background:#fffdf6;border:1px solid #d2d7cc;border-radius:7px;box-shadow:0 3px 7px #0003;color:#243f35;position:relative;font:23px Georgia;padding:6px}.playing-card .pip{position:absolute;inset:30px 0 auto;text-align:center;font-size:34px}.playing-card .corner-bottom{position:absolute;bottom:5px;right:6px;transform:rotate(180deg)}.playing-card.back{background:repeating-linear-gradient(45deg,#647d96 0,#647d96 3px,#526e87 3px,#526e87 7px);border:4px solid #f5f2e6}.foundations{display:flex;gap:8px}.foundation{width:57px;height:83px;border:1px dashed #afc5ae7a;border-radius:7px;display:grid;place-items:center;color:#abc0aa80;font-size:28px}.stock-caption{font-size:12px;color:#c9dacb;margin:12px 0 0}.columns{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:12px}.column{position:relative;height:235px;border-radius:7px}.column .playing-card{position:absolute;top:calc(var(--index)*24px);width:100%;max-width:88px}.table-note{font-size:13px;line-height:1.6;color:#66756d;margin:16px 0}.table-status{font-size:13px;color:#c9dacb;margin-top:20px}@media(max-width:700px), (max-width:1000px) and (max-height:500px){.table-head{align-items:start;flex-direction:column}.felt{padding:18px}.table-tools button{padding:10px}.table-head :is(h2,:is(h1,.brand-title).game-title){font-size:26px}}
/* Klassische, gut lesbare Spielkarten. */
.playing-card{width:76px;height:108px;background:#fff;border:1px solid #999;border-radius:5px;color:#111;box-shadow:0 2px 4px #0003;font:700 19px Arial,sans-serif;padding:5px}
.playing-card>span:first-child{display:flex;flex-direction:column;align-items:center;width:22px;line-height:20px}.playing-card.red{color:#e60000}
.playing-card .pip{inset:32px 0 auto;font:42px Georgia,serif}
.playing-card .corner-bottom{bottom:5px;right:5px;display:flex;flex-direction:column;align-items:center;width:22px;line-height:20px}
.playing-card.back{background:repeating-linear-gradient(45deg,#365b94 0,#365b94 2px,#6e8db5 2px,#6e8db5 4px);border:4px solid #fff;outline:1px solid #a1a1a1;outline-offset:-1px}
.column .playing-card{max-width:88px;height:116px;top:calc(var(--index)*25px)}
.foundation{width:61px;height:88px;border-color:#d0e6cf80;color:#c6e3bd80}
.column{height:250px}.table-status,.stock-caption{color:#e1f0dc}
.column .playing-card{top:calc(var(--index)*29px);user-select:none;z-index:calc(var(--index) + 1);overflow:hidden}.playing-card[draggable="true"]{cursor:grab}.playing-card[draggable="true"]:active{cursor:grabbing}.playing-card.chosen{outline:3px solid #f1cb66;outline-offset:-3px}.column{min-height:275px;border:1px solid #ffffff25}.column.drop-target{background:#ffffff25;outline:2px solid #eacb86}.empty-label{display:block;text-align:center;padding-top:40px;color:#cfdfc7;font-size:13px}.foundation.complete{background:#fff;color:#173d25;font-size:16px;font-weight:bold;border-style:solid}.stock{cursor:pointer;min-height:108px;min-width:76px}.stock[aria-disabled="true"]{cursor:default;font-size:13px;align-items:center}.stock:focus-visible,.column:focus-visible{outline:3px solid #eacb86;outline-offset:3px}.column .playing-card:focus-visible{outline:3px solid #eacb86;outline-offset:-3px}.drag-stack{position:fixed;z-index:9999;pointer-events:none;opacity:.9}.column .movable{cursor:grab;touch-action:none}.column .movable:active{cursor:grabbing}.effect-option{display:flex;align-items:center;gap:10px;margin-top:18px;cursor:pointer;font-weight:600}.effect-option input{width:20px;height:20px;accent-color:#247438}.effect-demo{display:flex;justify-content:center;background:#267c39;padding:22px;border-radius:12px;margin-top:14px}.effect-3d .playing-card,.effect-3d .card{box-shadow:inset 1px 1px 0 #fff,inset -2px -2px 3px #0002,1px 2px 0 #b9bcb4,2px 4px 0 #92998d,4px 8px 10px #0006;border-color:#838e80}.effect-3d .playing-card.back{box-shadow:inset 0 0 0 1px #ffffff80,1px 2px 0 #b9bcb4,2px 4px 0 #92998d,4px 8px 10px #0006}.effect-3d .drag-stack .playing-card{box-shadow:2px 4px 0 #a3ab9f,8px 15px 19px #0006}.effect-3d .foundation{box-shadow:inset 2px 3px 6px #0003,0 1px 0 #ffffff30}.context-menu{position:fixed;z-index:10000;min-width:245px;padding:5px;background:#fffdf6;color:#253c37;border:1px solid #b9c2b3;border-radius:9px;box-shadow:0 8px 25px #0004}.context-menu button{display:flex;justify-content:space-between;gap:25px;width:100%;padding:9px 12px;border:0;background:none;color:inherit;text-align:left;font-size:14px;border-radius:4px}.context-menu button:hover,.context-menu button:focus-visible{background:#e0ecdc;outline:none}.context-menu button:disabled{color:#a1a89e;cursor:default;background:none}.context-menu kbd{font:12px Segoe UI,sans-serif;color:#738074}.context-menu hr{border:0;border-top:1px solid #dde2d7;margin:4px}.context-menu .check{width:17px;display:inline-block}@media(max-width:700px), (max-width:1000px) and (max-height:500px){body{padding:10px;display:block}.table-view{width:100%}.table-head{gap:12px}.table-tools{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.table-tools button{min-height:44px;font-size:13px}.table-scroll{overflow-x:hidden}.felt{min-width:0;padding:10px 5px;min-height:440px}.table-top{gap:12px;flex-wrap:wrap;margin-bottom:22px}.table-top>div:last-child{width:100%}.foundations{gap:5px}.foundation{width:calc((100% - 35px)/8);height:48px;font-size:21px}.foundation.complete{font-size:11px}.stock{min-height:60px}.stock .playing-card{width:42px;height:60px;margin-right:-20px}.stock-caption{margin-top:8px;font-size:11px}.columns{gap:3px}.column .playing-card{height:clamp(48px,14vw,90px);padding:2px;font-size:clamp(11px,2.8vw,17px);border-radius:3px}.column .playing-card>span:first-child{width:auto;align-items:flex-start;line-height:1}.column .playing-card>span:first-child span{font-size:10px;line-height:1}.column .playing-card .pip{font-size:clamp(15px,4vw,27px);inset:45% 0 auto}.column .playing-card .corner-bottom{display:none}.column .playing-card.back{border-width:2px}.table-note{font-size:12px}.table-status{font-size:12px}.context-menu button{min-height:40px}.effect-3d .column .playing-card{box-shadow:1px 2px 0 #a3ab9f,2px 3px 4px #0004}.empty-label{font-size:9px}}
.face-settings{margin-top:20px;padding-top:16px;border-top:1px solid #dde2d7}.face-settings h3{font:600 18px Georgia,serif;margin:0 0 8px}.face-settings p{margin:6px 0 10px}.face-settings input[type=file]{width:100%;margin:8px 0 10px}.face-preview-wrap{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}.face-preview{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid #c8d1c4;background:#fff}.face-actions{display:flex;gap:8px;flex-wrap:wrap}.face-actions button{margin:0}.playing-card>span:first-child{position:relative;z-index:3}.playing-card .corner-bottom{z-index:3}.playing-card .pip{z-index:1}.face-enabled-note{font-size:12px;color:#66756d}
/* Eigene klassische Bildkarten für Bube, Dame und König. */
.playing-card.court-card{overflow:hidden}
.playing-card.court-card .pip{display:none}
.court-art{position:absolute;left:24px;right:5px;top:6px;bottom:6px;border:1px solid #d5c9a4;border-radius:3px;background:#fffdf3;overflow:hidden;pointer-events:none;z-index:1}
.court-half{position:absolute;left:0;width:100%;height:50%;overflow:hidden}
.court-half.top{top:0}.court-half.bottom{bottom:0;transform:rotate(180deg)}
.court-figure{position:absolute;inset:0}
.court-head{position:absolute;left:50%;top:7px;width:15px;height:17px;transform:translateX(-50%);border:1px solid #5d4934;border-radius:48% 48% 45% 45%;background:#f1c99f;z-index:3}
.court-hair{position:absolute;left:50%;top:4px;width:21px;height:16px;transform:translateX(-50%);border-radius:50% 50% 35% 35%;background:#70502f;z-index:2}
.court-card.rank-q .court-hair{background:#8b5b31;width:22px;height:18px}.court-card.rank-j .court-hair{background:#2f2f2f}
.court-crown{position:absolute;left:50%;top:0;transform:translateX(-50%);width:23px;height:9px;background:linear-gradient(135deg,#f6d45c,#c89f24);clip-path:polygon(0 100%,0 38%,18% 64%,31% 5%,50% 62%,69% 5%,82% 64%,100% 38%,100% 100%);border-bottom:1px solid #876a16;z-index:4}
.court-card.rank-j .court-crown{width:23px;height:10px;background:linear-gradient(135deg,#c92828 0 48%,#1e4b86 48% 100%);clip-path:polygon(0 75%,18% 25%,47% 55%,72% 0,100% 45%,88% 100%,8% 100%)}
.court-body{position:absolute;left:50%;top:22px;width:34px;height:31px;transform:translateX(-50%);clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);background:var(--court-main,#c62424);border:1px solid #65432a}
.court-body:before{content:"";position:absolute;left:50%;top:0;width:7px;height:100%;transform:translateX(-50%);background:#e5c14d;opacity:.95}
.court-body:after{content:"";position:absolute;left:4px;right:4px;top:12px;height:5px;background:#244f82;border-top:1px solid #f1d45b;border-bottom:1px solid #f1d45b}
.court-card.black-court .court-body{--court-main:#234a79}.court-card.rank-q .court-body{--court-main:#2b78a0}.court-card.rank-j .court-body{--court-main:#c93631}.court-card.black-court.rank-j .court-body{--court-main:#2d5c88}
.court-sash{position:absolute;left:7px;right:7px;top:26px;height:4px;background:#f0d157;transform:rotate(-28deg);z-index:3}
.court-symbol{position:absolute;right:2px;bottom:0;font:700 13px Georgia,serif;color:inherit;z-index:4}
.court-card.red .court-symbol{color:#e60000}.court-card:not(.red) .court-symbol{color:#111}
.court-detail{position:absolute;left:3px;bottom:1px;font-size:8px;color:#d2aa34;z-index:4}
.court-photo{position:absolute;left:50%;top:6px;width:17px;height:18px;transform:translateX(-50%);object-fit:cover;object-position:center 32%;border-radius:45%;border:1px solid #5d4934;background:#f1c99f;z-index:5}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){.column .playing-card .court-art{left:18%;right:4%;top:3px;bottom:3px}.column .playing-card .court-head{width:13px;height:14px;top:6px}.column .playing-card .court-hair{width:18px;height:14px}.column .playing-card .court-crown{width:19px;height:8px}.column .playing-card .court-body{width:29px;height:28px;top:19px}.column .playing-card .court-photo{width:14px;height:15px;top:5px}.column .playing-card .court-symbol{font-size:10px}}

.column{isolation:isolate}.playing-card{isolation:isolate}.drag-stack .playing-card{overflow:hidden}
dialog{max-height:calc(100dvh - 32px);overflow-y:auto}.context-menu{max-height:calc(100dvh - 12px);overflow-y:auto}
.playing-card img{pointer-events:none;-webkit-user-drag:none}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){.column .playing-card .court-art{left:35%;right:2%}.drag-stack .playing-card{padding:2px;font-size:clamp(11px,2.8vw,17px)}.drag-stack .playing-card .corner-bottom{display:none}.drag-stack .playing-card .court-art{left:35%;right:2%;top:3px;bottom:3px}.drag-stack .playing-card .pip{inset:45% 0 auto;font-size:clamp(15px,4vw,27px)}.drag-stack .playing-card>span:first-child{line-height:1;width:auto}.drag-stack .playing-card>span:first-child span{font-size:10px}}

/* Handy: Platz fuer Karten, sichere Bildschirmraender und gut erreichbare Bedienelemente. */
button{touch-action:manipulation}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){
 body{padding:max(8px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));min-height:100dvh}
 .table-head{gap:8px;margin-bottom:10px}.table-head :is(h2,:is(h1,.brand-title).game-title){font-size:23px}.table-head p{margin:3px 0;font-size:12px}
 .table-tools{gap:6px}.table-tools button{padding:8px 5px;min-height:44px}
 .table-top{flex-wrap:nowrap;gap:12px;margin-bottom:16px}.table-top>div:first-child{flex:0 0 114px}.table-top>div:last-child{width:auto;flex:1;min-width:0}
 .foundations{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.foundation{width:100%;height:28px;font-size:16px}.foundation.complete{font-size:9px}
 .stock-caption{font-size:10px;line-height:1.3}.felt{padding:10px 4px}.columns{gap:3px}
 .column .playing-card,.drag-stack .playing-card{-webkit-touch-callout:none;user-select:none}
 .column .playing-card>span:first-child,.drag-stack .playing-card>span:first-child{align-items:flex-start}
 .table-note{margin:10px 2px}.table-status{margin-top:12px}
 dialog{padding:18px;width:calc(100% - 20px);max-height:calc(100dvh - 20px)}
 dialog button{min-height:44px}select,input[type=file]{font-size:16px}.effect-option{min-height:44px}
 .bar{gap:8px;flex-wrap:wrap}.layout{padding:14px}.preview{min-height:230px}.games{height:200px}
}
@media(max-width:1000px) and (max-height:500px) and (orientation:landscape){
 .table-head{flex-direction:row;align-items:center}.table-tools{width:auto;display:flex;flex-wrap:nowrap}.table-tools button{padding:8px 12px}
 .table-top>div:last-child{max-width:440px}.foundations{grid-template-columns:repeat(8,minmax(0,1fr))}.foundation{height:42px}
 .table-top{margin-bottom:12px}.stock .playing-card{height:48px}.stock{min-height:48px}.table-note{font-size:11px}
}

#kl-table{width:min(760px,100%)}#kl-table .column .playing-card{height:130px}
#kl-stock{width:100%}#kl-columns{grid-template-columns:repeat(7,minmax(0,1fr))}
#kl-table .felt{min-width:0}#kl-table .column .playing-card{max-width:none}
.kl-top{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin-bottom:24px}
#kl-foundations{grid-column:4/8;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.kl-slot{position:relative;height:130px;border:1px dashed #ffffff80;border-radius:5px;background:transparent;color:#e1f0dc;padding:0;display:grid;place-items:center;font-size:18px;min-width:0}
.kl-slot .playing-card{width:100%;height:100%;text-align:left}.kl-slot.drop-target{outline:3px solid #eacb86}.kl-source{touch-action:none;user-select:none;-webkit-touch-callout:none;cursor:grab}
#kl-table .playing-card.chosen{outline:3px solid #eacb86;outline-offset:-3px}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){
 .kl-top,#kl-foundations{gap:4px}.kl-top{margin-bottom:16px}.kl-slot{height:clamp(60px,19vw,90px);font-size:11px}
 #kl-table .column .playing-card,#kl-table .playing-card{height:clamp(60px,19vw,90px);font-size:clamp(13px,3vw,17px);padding:2px}
 #kl-table .playing-card>span:first-child{width:auto;align-items:flex-start;line-height:1}#kl-table .playing-card>span:first-child span{font-size:11px;line-height:1}
 #kl-table .playing-card .corner-bottom{display:none}#kl-table .playing-card .pip{inset:45% 0 auto;font-size:clamp(20px,5vw,30px)}
 #kl-table .playing-card .court-art{left:35%;right:2%;top:3px;bottom:3px}
 #kl-table .table-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}#kl-table .table-head{flex-direction:column;align-items:stretch}
}

/* Feste Tischhoehe; nur die Abstaende der Karten veraendern sich. */
.felt{display:grid;grid-template-rows:160px 350px 48px;gap:12px;padding:16px;min-height:0;height:614px;overflow:hidden}
.table-top,.kl-top{margin:0!important;align-self:start}.columns{height:350px!important;min-height:0}.column{height:350px!important;min-height:0}
.table-status{margin:0;overflow:hidden;font-size:12px;line-height:1.4}
.column .playing-card{touch-action:none;-webkit-touch-callout:none}
.column .playing-card>span:first-child,.drag-stack .playing-card>span:first-child{flex-direction:row;gap:2px;width:auto;align-items:center;line-height:1;font-size:16px}
.column .playing-card>span:first-child span,.drag-stack .playing-card>span:first-child span{font-size:16px;line-height:1}
.column .playing-card .court-art{top:26px;left:8%;right:8%}.peek-card{outline:1px solid #edce80}
.visitor-badge{text-align:center;font-size:13px;color:#345544;background:#fffdf6;border:1px solid #d6daca;border-radius:10px;padding:10px 16px;margin:0 auto 14px;width:max-content;max-width:100%;grid-column:1/-1}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){
 .felt{grid-template-rows:110px 270px 48px;height:472px;padding:10px 4px}.columns,.column{height:270px!important}
 #kl-table .playing-card>span:first-child,.column .playing-card>span:first-child,.drag-stack .playing-card>span:first-child{flex-direction:row;gap:1px;font-size:11px;line-height:1}
 #kl-table .playing-card>span:first-child span,.column .playing-card>span:first-child span,.drag-stack .playing-card>span:first-child span{font-size:10px;line-height:1}
 #kl-table .playing-card .court-art,.column .playing-card .court-art{top:17px;left:10%;right:3%}
}

/* Klassisches Kartenbild mit den bereitgestellten Illustrationen. */
.playing-card{background:#fffefa;color:#111a24;border-color:#b7b7ad;border-radius:5px;box-shadow:0 2px 3px #0004,inset 0 0 0 1px #fff;font-family:Georgia,'Times New Roman',serif}
.playing-card.red{color:#cf1724}
.playing-card .rank-top{position:absolute;left:4px;top:3px;right:3px;z-index:4;display:flex!important;flex-direction:row!important;gap:2px;align-items:center;font:700 17px/1 Georgia,serif!important;letter-spacing:-.6px;background:#fffefa}
.playing-card .rank-top span{font:15px/1 Georgia,serif!important;letter-spacing:0}
.playing-card .corner-bottom{font:700 12px/1 Georgia,serif;bottom:3px;right:3px;display:flex;gap:1px}
.number-art{position:absolute;left:16%;top:24%;width:68%;height:62%;fill:currentColor;pointer-events:none}
.classic-portrait{position:absolute;left:7%;right:7%;top:23px;bottom:17px;overflow:hidden;border:1px solid #173367;background:#fff;pointer-events:none}
.classic-portrait .classic-face{position:absolute;width:24%;height:23%;max-width:none;object-fit:cover;object-position:center 32%;border-radius:45%;transform:translate(-50%,-50%);border:1px solid #d4ba79;pointer-events:none;z-index:1}
.classic-portrait .classic-face.mirrored{transform:translate(-50%,-50%) rotate(180deg)}
.classic-portrait>img:not(.classic-face){position:absolute;max-width:none;object-fit:fill;user-select:none;pointer-events:none}
.playing-card.back{border:3px solid #fffdf6;background-color:#183c70;background-image:repeating-linear-gradient(45deg,transparent 0 4px,#ffffff35 4px 5px),repeating-linear-gradient(-45deg,transparent 0 4px,#ffffff35 4px 5px);box-shadow:inset 0 0 0 1px #12284c,0 2px 4px #0005}
.playing-card.back:after{content:'✦';position:absolute;inset:7px;border:1px solid #e5d49a8c;border-radius:3px;display:grid;place-items:center;color:#e5d49ac9;font-size:22px}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){
 .playing-card .rank-top{left:2px;top:2px;font-size:12px!important;letter-spacing:-.5px;gap:1px!important}
 .playing-card .rank-top span{font-size:10px!important}
 .classic-portrait{top:16px;bottom:3px;left:5%;right:5%;border-width:.5px}
 .number-art{top:27%;height:68%;left:12%;width:76%}
 .playing-card.back:after{inset:4px;font-size:14px}.playing-card.back{border-width:2px}
}

/* Complete supplied cards scale proportionally, including their original indices. */
.playing-card.original-card,#kl-table .playing-card.original-card{padding:0!important;border:0!important;height:auto!important;min-height:0;background:transparent;overflow:hidden;border-radius:0;box-shadow:none;}
.original-art{display:block;width:100%;height:auto;aspect-ratio:inherit;pointer-events:none;user-select:none}
.playing-card.original-card::before,.playing-card.original-card::after{display:none!important}

#ft-stock{width:100%}#ft-table{width:min(1040px,100%)}#ft-table .felt{min-width:0}#ft-columns{grid-template-columns:repeat(10,minmax(0,1fr))}#ft-table .column .playing-card{max-width:none}
.ft-top{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:12px;align-self:start}
#ft-foundations{grid-column:3/11;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:12px}
.ft-slot{position:relative;aspect-ratio:0.69;border:1px dashed #ffffff80;border-radius:5px;background:transparent;color:#e1f0dc;padding:0;display:grid;place-items:center;min-width:0;font-size:16px}
.ft-slot .playing-card{width:100%;text-align:left}.ft-slot .back{height:100%}.ft-slot.drop-target{outline:3px solid #eacb86}.ft-source{touch-action:none;user-select:none;-webkit-touch-callout:none;cursor:grab}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){.ft-top,#ft-foundations{gap:3px}.ft-slot{font-size:10px}#ft-table .table-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}#ft-table .table-head{flex-direction:column;align-items:stretch}}

/* Kartenformat der Referenz: etwa 78 x 122, kleine runde Ecken. */
.playing-card.original-card,#kl-table .playing-card.original-card,#ft-table .playing-card.original-card{aspect-ratio:39/61!important;border:1px solid #151515!important;border-radius:3px!important;background:#fffdf4;overflow:hidden}
.original-art{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto!important}
.playing-card.back{aspect-ratio:39/61!important;height:auto!important;border-radius:3px!important}
.ft-slot{aspect-ratio:39/61}

/* Reference-style cards: one geometry for faces, backs and dragged cards. */
.playing-card.reference-card,#kl-table .playing-card.reference-card,#ft-table .playing-card.reference-card{padding:0!important;aspect-ratio:39/61!important;height:auto!important;min-height:0!important;border:1px solid #151515!important;border-radius:4px!important;clip-path:inset(0 round 4px);background:#fffef0!important;overflow:hidden;box-shadow:0 1px 1px #0002;color:#080808}
.reference-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;user-select:none}
.playing-card.reference-card::before,.playing-card.reference-card::after{display:none!important}
.playing-card.back{border-radius:4px!important;clip-path:inset(0 round 4px)}
#ft-table{width:min(900px,100%)}#ft-columns,.ft-top,#ft-foundations{gap:9px}
#ft-waste{overflow:hidden;font-size:12px}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){#ft-columns,.ft-top,#ft-foundations{gap:3px}#ft-waste{font-size:8px}}

.play-effects{border-bottom:1px solid #d7ddcf;padding-bottom:20px;margin-bottom:20px}.play-effects h3{margin-top:0}.play-effects input[type=range]{display:block;width:100%;accent-color:#247438;margin:12px 0}.range-ends{display:flex;justify-content:space-between;font-size:12px;color:#66756d}.sound-tests{display:flex;gap:8px;flex-wrap:wrap}.deal-flight{pointer-events:none!important}.deal-skip{border-color:#bfa050!important}

/* FreeCell: eight equal columns, four cells and four suit foundations. */
#fc-table{width:min(900px,100%)}#fc-table .felt{min-width:0;grid-template-rows:auto 350px 48px;height:auto}
#fc-columns{grid-template-columns:repeat(8,minmax(0,1fr));gap:9px}
#fc-table .column .playing-card{max-width:none}
.fc-top{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-self:start}
.fc-top .stock-caption{margin:0 0 6px}
#fc-cells,#fc-foundations{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.fc-slot{position:relative;aspect-ratio:39/61;border:1px dashed #ffffff80;border-radius:5px;background:transparent;color:#e1f0dc;padding:0;display:grid;place-items:center;min-width:0;font-size:16px}
.fc-slot .playing-card{width:100%;text-align:left}.fc-slot.drop-target{outline:3px solid #eacb86}
.fc-source{touch-action:none;user-select:none;-webkit-touch-callout:none;cursor:grab}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){#fc-table .felt{grid-template-rows:auto 270px 48px}#fc-columns,.fc-top,#fc-cells,#fc-foundations{gap:3px}.fc-slot{font-size:10px}#fc-table .table-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}#fc-table .table-head{flex-direction:column;align-items:stretch}}

#ss-table{width:min(900px,100%)}#ss-table .felt{min-width:0;height:auto;grid-template-rows:auto 350px 48px}
#ss-columns{grid-template-columns:repeat(10,minmax(0,1fr));gap:9px}#ss-table .column .playing-card{max-width:none}
.ss-top{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:9px;align-self:start}
#ss-foundations{grid-column:7/11;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.ss-slot{position:relative;aspect-ratio:39/61;border:1px dashed #ffffff80;border-radius:5px;background:transparent;color:#e1f0dc;display:grid;place-items:center;min-width:0;font-size:14px}
.ss-slot.complete{background:#fffef0;color:#173d25;border:1px solid #151515}.ss-source{touch-action:none;user-select:none;-webkit-touch-callout:none;cursor:grab}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){#ss-table .felt{grid-template-rows:auto 270px 48px}#ss-columns,.ss-top,#ss-foundations{gap:3px}.ss-slot{font-size:10px}#ss-table .table-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}#ss-table .table-head{flex-direction:column;align-items:stretch}}
.menu-joker{width:144px;max-width:100%;height:126px;align-self:center;margin:1px auto 0;display:flex;align-items:center;justify-content:center;pointer-events:none}.menu-joker img{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}@media(max-width:700px), (max-width:1000px) and (max-height:500px){.menu-joker{grid-column:1/-1;justify-self:center}}
/* Double Klondike: nine tableau columns and eight foundations. */
#dk-table{width:min(900px,100%)}#dk-table .felt{min-width:0}#dk-stock{width:100%}
#dk-columns{grid-template-columns:repeat(9,minmax(0,1fr));gap:9px}#dk-table .column .playing-card{max-width:none}
.dk-top{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:9px;align-self:start}
#dk-foundations{grid-column:3/11;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:9px}
.dk-slot{position:relative;aspect-ratio:39/61;border:1px dashed #ffffff80;border-radius:5px;background:transparent;color:#e1f0dc;padding:0;display:grid;place-items:center;min-width:0;font-size:16px}
.dk-slot .playing-card{width:100%;text-align:left}.dk-slot.drop-target{outline:3px solid #eacb86}.dk-source{touch-action:none;user-select:none;-webkit-touch-callout:none;cursor:grab}
#dk-table .playing-card.chosen{outline:3px solid #eacb86;outline-offset:-3px}#dk-waste{overflow:hidden;font-size:12px}
#dk-stock-count{font-size:10px}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){#dk-columns,.dk-top,#dk-foundations{gap:3px}.dk-slot{font-size:10px}#dk-waste{font-size:8px}#dk-stock-count{font-size:8px}#dk-table .table-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}#dk-table .table-head{flex-direction:column;align-items:stretch}}
#ds-table{width:min(900px,100%)}#ds-table .felt{min-width:0;height:auto;grid-template-rows:auto 350px 48px}
#ds-columns{grid-template-columns:repeat(10,minmax(0,1fr));gap:9px}#ds-table .column .playing-card{max-width:none}
.ds-top{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:9px;align-self:start}
#ds-foundations{grid-column:3/11;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:9px}
.ds-slot{position:relative;aspect-ratio:39/61;border:1px dashed #ffffff80;border-radius:5px;background:transparent;color:#e1f0dc;display:grid;place-items:center;min-width:0;font-size:14px}
.ds-slot.complete{background:#fffef0;color:#173d25;border:1px solid #151515}.ds-source{touch-action:none;user-select:none;-webkit-touch-callout:none;cursor:grab}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){#ds-table .felt{grid-template-rows:auto 270px 48px}#ds-columns,.ds-top,#ds-foundations{gap:3px}.ds-slot{font-size:10px}#ds-table .table-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}#ds-table .table-head{flex-direction:column;align-items:stretch}}

.feedback-box{margin-top:20px;border-top:1px solid #ccd5c9;padding-top:16px}.feedback-language{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.feedback-language select{max-width:100%;width:auto}.feedback-rating{display:flex;gap:8px;flex-wrap:wrap;border:0;padding:0;margin:12px 0}.feedback-rating label{display:flex;align-items:center;gap:7px;flex:1;min-width:125px;padding:10px;border:1px solid #bbc9bd;border-radius:9px}.feedback-rating input{width:auto}.feedback-form select,.feedback-form textarea{width:100%;box-sizing:border-box;font:inherit;padding:9px;border:1px solid #bbc9bd;border-radius:8px}.feedback-form textarea{resize:vertical;min-height:80px;max-height:150px}.feedback-form label{display:block;margin-top:10px}.feedback-form .feedback-rating label{display:flex}.feedback-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.feedback-status{min-height:1.4em;overflow-wrap:anywhere}.feedback-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.feedback-summary p{margin:0;padding:8px;background:#eef1e9;border-radius:8px;overflow-wrap:anywhere}.feedback-game{border-top:1px solid #d3dbd0;margin-top:12px;padding-top:8px}.feedback-game h4{margin:4px 0 8px}.feedback-privacy{font-size:12px;color:#52675b}.feedback-form button{white-space:normal;max-width:100%}#dialog:has(.feedback-form),#dialog:has(.feedback-box){box-sizing:border-box;max-height:90dvh;overflow-y:auto;max-width:calc(100vw - 24px)}

/* Compact feedback dialog; existing game dialogs and card styles stay intact. */
#dialog:has(.feedback-form){width:680px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);margin:auto;padding:22px}
#dialog:has(.feedback-form)>:is(h2,:is(h1,.brand-title).game-title){font-size:24px;margin:0 0 12px}
#dialog:has(.feedback-form)>#close{display:none}
.feedback-language-options{font-size:13px;color:#52675b;margin:0 0 10px}
.feedback-language-options summary{cursor:pointer;width:fit-content}
.feedback-form .feedback-language{display:flex;margin:6px 0 0;gap:10px}
.feedback-form .feedback-language select{width:auto;margin:0;padding:6px 9px}
.feedback-form .feedback-rating{margin:8px 0}
.feedback-form .feedback-rating legend{font-size:13px;margin-bottom:4px}
.feedback-form .feedback-rating label{margin-top:0;padding:9px}
.feedback-form label{margin-top:8px}
.feedback-form select{margin:5px 0 0}
.feedback-form textarea{display:block;margin-top:5px;min-height:72px}
.feedback-form .feedback-privacy{margin:7px 0;line-height:1.4}
.feedback-status{margin:8px 0;min-height:0;line-height:1.4}
.feedback-status:empty{display:none}
.feedback-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;margin-top:14px}
.feedback-actions button{margin:0;min-height:44px;padding:10px 18px}
@media(max-width:480px){#dialog:has(.feedback-form){padding:16px}#dialog:has(.feedback-form)>:is(h2,:is(h1,.brand-title).game-title){font-size:21px}.feedback-actions>*{flex:1}.feedback-rating label{min-width:110px}}
/* Comment controls only: no changes to game-table geometry. */
#home-comment:before{content:'▣';background:#0d654d;color:#fff;border-radius:50%;width:34px;height:34px;display:inline-grid;place-items:center;margin-right:10px;font:18px Arial}
.comment-admin{margin-bottom:18px;min-width:0}.comments-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.comments-heading :is(h2,:is(h1,.brand-title).game-title){margin:0}.comments-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.comments-filters label{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1 1 140px}.comment-admin select,.comment-admin input{font:inherit;box-sizing:border-box;max-width:100%;padding:9px;border:1px solid #cdd5cf;border-radius:8px;background:#fff}.comment-admin input{width:100%}.comments-summary{font-weight:600}.comment-row{border-top:1px solid #d9ded7;padding:9px 0}.comment-row summary{display:grid;grid-template-columns:100px 130px 130px 45px minmax(100px,1fr) 30px 30px 100px;gap:10px;cursor:pointer;align-items:start}.comment-row summary:before{content:'▸';grid-column:1/-1;font-size:12px;height:6px}.comment-row[open] summary:before{content:'▾'}.comment-row small{display:block;font-size:11px;color:#6d7b74}.comment-row summary>span{min-width:0;overflow-wrap:anywhere}.comment-preview>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.comment-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.comments-pages{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:15px}.comment-admin [hidden]{display:none!important}.comment-admin button{min-height:40px}.comment-admin button:disabled{opacity:.5;cursor:default}
@media(max-width:1000px){.comment-row summary{grid-template-columns:repeat(4,minmax(0,1fr))}.comment-preview{grid-column:1/-1}.comment-admin .panel{padding:12px}}
@media(max-width:480px){.comment-row summary{grid-template-columns:repeat(2,minmax(0,1fr))}.comments-pages{flex-wrap:wrap}.comments-filters label{flex-basis:130px}.comment-admin{padding:14px}.comments-filters button{flex:1}}

:root{--lounge-cream:#f8f3e9;--lounge-ink:#203d35;--lounge-gold:#bfa06a;--lounge-line:#dcd0bd}
body.ludicera-lounge{background:radial-gradient(ellipse at 50% 0,#fffdf7,#f1e9dc 75%);color:var(--lounge-ink);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:18px 26px;gap:0}
.ludicera-header{width:min(1280px,100%);display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:0 0 14px;border-bottom:1px solid var(--lounge-line)}
.ludicera-header .logo{padding:0;background:none;line-height:0}.ludicera-header .logo img{width:62px;height:62px;object-fit:contain;mix-blend-mode:multiply}.ludicera-header :is(h1,.brand-title){font:600 30px Georgia,serif}.ludicera-header p{font-size:13px;margin:4px 0 0}
.ludicera-lounge #visit-counter{font-size:11px;padding:3px 8px;background:transparent;border:0;box-shadow:none;margin:0 0 12px;min-height:0;color:#68736a;align-self:center}
.lounge-game{width:min(1280px,100%)!important;min-width:0;max-width:100%}.lounge-game .game-header{gap:14px;flex-wrap:wrap;margin-bottom:14px}.lounge-game .game-header :is(h2,:is(h1,.brand-title).game-title){font:600 32px Georgia,serif}.lounge-game .game-header :is(h2,:is(h1,.brand-title).game-title):before{content:'♠';font-size:26px;margin-right:9px;color:#264c3d}.lounge-game .game-header p{font-size:13px;color:#687065}
.lounge-game .game-toolbar{min-width:0;flex-wrap:wrap;gap:8px}.lounge-game .game-toolbar button{min-height:42px;padding:10px 14px;border:1px solid var(--lounge-line);border-radius:10px;background:linear-gradient(#fffdf8,#f2eadf);color:var(--lounge-ink);box-shadow:0 2px 3px #4a351012;transition:background-color 150ms,box-shadow 150ms}
.lounge-game .game-toolbar button:hover:not(:disabled){background:#eadcc5;box-shadow:0 3px 7px #4a35101f}.lounge-game .game-toolbar button:focus-visible,.game-help-card summary:focus-visible{outline:3px solid #a7803e;outline-offset:3px}
.lounge-game .table-scroll{border:2px solid #bfa06a;border-radius:24px;box-shadow:0 12px 26px #3e2d1929,0 2px 3px #3e2d1926;max-width:100%}
.lounge-game .felt{border-radius:21px;background:radial-gradient(ellipse at 45% 5%,#167146,#075638 65%,#05452e);box-shadow:inset 0 0 0 2px #f1dd9630,inset 0 2px 15px #00291bcc}
.lounge-game .playing-card{box-shadow:0 2px 4px #00180d4d}.lounge-game .column{background:#073e201a;box-shadow:inset 0 0 0 1px #d7e7bc16}.lounge-game .table-status{font-size:13px;color:#edf1dc}
.game-help-card{background:#fffbf4b8;border:1px solid var(--lounge-line);border-radius:14px;margin:12px 0 16px;padding:13px 16px;box-shadow:0 3px 10px #47381708}.game-help-card summary{cursor:pointer;font-size:15px;font-weight:600}.game-help-card .table-note{margin:12px 0 0;line-height:1.65;color:#536357}
@media(max-width:1000px){.lounge-game .game-header{align-items:flex-start}.lounge-game .game-toolbar{max-width:100%}.lounge-game .table-scroll{min-width:0}.lounge-game .felt{min-width:0}}
@media(max-width:700px){body.ludicera-lounge{padding:10px 8px}.ludicera-header{margin-bottom:10px;padding-bottom:10px;gap:8px}.ludicera-header .logo img{width:44px;height:44px}.ludicera-header :is(h1,.brand-title){font-size:25px}.ludicera-header p{font-size:11px}.lounge-game .game-header :is(h2,:is(h1,.brand-title).game-title){font-size:26px}.lounge-game .game-header{gap:10px}.lounge-game .game-toolbar{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.lounge-game .game-toolbar button{padding:8px 6px;font-size:12px;white-space:normal}.lounge-game .table-scroll{border-radius:15px}.lounge-game .felt{border-radius:12px}.game-help-card{padding:11px 12px}.game-help-card summary{font-size:14px}}
@media(prefers-reduced-motion:reduce){.lounge-game .game-toolbar button{transition:none}}

.ludicera-lounge .visitor-badge{font-size:11px;padding:2px 8px;background:transparent;border:0;box-shadow:none;margin:0 0 10px;color:#68736a}
.language-bar{margin-left:auto;display:flex;gap:4px;align-items:center;flex-wrap:wrap;max-width:100%}.language-bar button{display:grid;place-items:center;font-family:'Segoe UI Emoji','Apple Color Emoji',sans-serif;font-size:21px;line-height:1;min-width:36px;min-height:36px;padding:5px;border:1px solid transparent;border-radius:8px;background:transparent;color:#203d35;cursor:pointer}.language-bar button:hover{background:#efe4d2}.language-bar button[aria-pressed=true]{background:#ead8b1;border-color:#a88142;box-shadow:inset 0 -2px #886b35}.language-bar button:focus-visible{outline:3px solid #9a753b;outline-offset:2px}
@media(max-width:700px){.ludicera-header{flex-wrap:wrap}.language-bar{gap:2px}.language-bar button{font-size:19px;min-width:32px;min-height:36px;padding:4px}}
@media(max-width:520px){.language-bar{width:100%;justify-content:flex-end;margin-top:3px}.language-bar button{min-width:34px}}

.language-bar img{display:block;width:24px;height:16px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px #0002}
@media(max-width:700px){:is(#table,#dk-table,#kl-table,#ft-table,#fc-table,#ss-table,#ds-table) .game-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* Ludicera v38 premium game polish */
:root{
  --lounge-cream:#f5efe4;
  --lounge-cream-2:#fffaf1;
  --lounge-ink:#173e35;
  --lounge-muted:#68756d;
  --lounge-gold:#b99555;
  --lounge-gold-soft:#d9c49b;
  --lounge-line:#ddd0bc;
  --lounge-felt:#075c3d;
  --lounge-felt-deep:#03452f;
}
body.ludicera-lounge{
  background:
    radial-gradient(circle at 12% 16%,#ffffff80 0 4%,transparent 5%),
    radial-gradient(circle at 88% 10%,#ffffff66 0 3%,transparent 4%),
    linear-gradient(180deg,#fbf7ef 0%,#f2eadf 58%,#eee4d7 100%);
  color:var(--lounge-ink);
  padding:20px 28px 34px;
}
.ludicera-header{
  width:min(1320px,100%);
  min-height:82px;
  gap:14px;
  padding:12px 18px 14px;
  margin:0 auto 18px;
  border:1px solid #e2d6c5;
  border-radius:18px;
  background:linear-gradient(180deg,#fffdf8e8,#f8f1e7dc);
  box-shadow:0 12px 34px #5c463014,0 2px 5px #5c463012;
  backdrop-filter:blur(8px);
}
.ludicera-header .logo{
  width:68px;height:68px;display:grid;place-items:center;flex:0 0 auto;
}
.ludicera-header .logo img{
  width:64px;height:64px;filter:drop-shadow(0 3px 4px #4937192b);mix-blend-mode:multiply;
}
.ludicera-header :is(h1,.brand-title){font:600 31px/1.05 Georgia,serif;letter-spacing:.2px;color:#173e35}
.ludicera-header p{font-size:13px;color:#6f756e;margin:6px 0 0}
.ludicera-header .header-visitor{
  margin-left:auto!important;margin-bottom:0!important;padding:5px 10px!important;
  border:1px solid #e1d4bf!important;border-radius:999px!important;
  background:#fffaf0cc!important;color:#647069!important;font-size:11px!important;
  line-height:1.2;white-space:nowrap;
}
.ludicera-header .language-bar{margin-left:4px;gap:3px;padding:3px;border:1px solid #e5d8c5;border-radius:10px;background:#fffaf0b8}
.ludicera-header .language-bar button{min-width:34px;min-height:31px;border-radius:7px}
.ludicera-header .language-bar button:hover{background:#efe2cc}
.ludicera-header .language-bar button[aria-pressed=true]{background:#ead5a9;border-color:#a78242;box-shadow:0 1px 2px #5f461a24,inset 0 -2px #8a6a33}

.lounge-game{width:min(1320px,100%)!important;margin:0 auto;position:relative}
.lounge-game .game-header{
  position:relative;display:flex;align-items:center;justify-content:space-between;
  gap:18px;flex-wrap:wrap;margin:0 0 13px;padding:0 4px;
}
.lounge-game .game-header>div:first-child{min-width:210px}
.lounge-game .game-header :is(h2,:is(h1,.brand-title).game-title){
  font:600 32px/1.05 Georgia,serif;color:#173e35;letter-spacing:.15px;margin:0;
  display:flex;align-items:center;gap:7px;
}
.lounge-game .game-header :is(h2,:is(h1,.brand-title).game-title):before{
  content:'♠';font-size:23px;line-height:1;color:#173e35;
  width:34px;height:34px;display:grid;place-items:center;border-radius:50%;
  background:#efe5d3;border:1px solid #d5c19a;box-shadow:inset 0 0 0 3px #fff8ec;
  margin-right:2px;
}
.lounge-game .game-header p{font-size:13px;color:#778077;margin:5px 0 0 43px}
.lounge-game .game-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;margin-left:auto}
.lounge-game .game-toolbar button{
  min-height:40px;padding:9px 13px;border:1px solid #d8cbb8;border-radius:10px;
  background:linear-gradient(180deg,#fffdf8,#f0e5d6);color:#23483e;
  box-shadow:0 2px 4px #513d2415,inset 0 1px #fff;
  font-size:13px;font-weight:600;transition:transform 130ms ease,box-shadow 130ms ease,background 130ms ease;
}
.lounge-game .game-toolbar button:hover:not(:disabled){
  transform:translateY(-1px);background:linear-gradient(180deg,#fffaf0,#e8d7bb);box-shadow:0 4px 10px #513d2423,inset 0 1px #fff;
}
.lounge-game .game-toolbar button:active:not(:disabled){transform:translateY(0)}
.lounge-game .game-toolbar button[id$='new'],
.lounge-game .game-toolbar #new-deal{
  border-color:#b9975d;background:linear-gradient(180deg,#f2d99b,#dfbd72);color:#24453c;box-shadow:0 3px 8px #75571e25,inset 0 1px #fff8d9;
}
.lounge-game .game-toolbar button[data-feedback-button]{background:linear-gradient(180deg,#fffdf8,#f4ecdf);border-color:#d8c7aa}

.lounge-game .table-scroll{
  overflow-x:auto;
  border:2px solid #9b7740;
  border-radius:24px;
  padding:6px;
  background:linear-gradient(145deg,#d9c09a,#9b7740 38%,#76552c 58%,#cfb184);
  box-shadow:0 18px 44px #3f2f1c2c,0 4px 10px #3f2f1c24,inset 0 1px #f6e6c5;
}
.lounge-game .felt{
  position:relative;
  border-radius:18px;
  background:
    radial-gradient(circle at 35% 18%,#16805840 0 2px,transparent 3px),
    radial-gradient(circle at 72% 76%,#b3d6b214 0 1px,transparent 2px),
    radial-gradient(ellipse at 48% 2%,#0b6845 0%,#064b34 52%,#033824 100%);
  background-size:auto,7px 7px,auto;
  box-shadow:inset 0 0 0 1px #d7c58c28,inset 0 4px 22px #00291dcc,inset 0 -16px 34px #00291d66;
  border:1px solid #d7c58c2b;
}
.lounge-game .felt:before{
  content:'';position:absolute;inset:8px;border:1px solid #e8d9aa14;border-radius:13px;pointer-events:none;
}
.lounge-game .table-top,.lounge-game .kl-top,.lounge-game .ft-top,.lounge-game .fc-top,.lounge-game .ss-top,.lounge-game .dk-top,.lounge-game .ds-top{position:relative;z-index:1}
.lounge-game .columns{position:relative;z-index:1;align-items:stretch}
.lounge-game .column{
  background:linear-gradient(180deg,#ffffff08,#001f1215);
  border:1px solid #dfeac813;
  border-radius:9px;
  box-shadow:inset 0 1px #ffffff0a;
}
/* Center each card precisely inside its tableau column. */
.lounge-game .columns .column>.playing-card{
  left:50%!important;
  transform:translateX(-50%)!important;
}
.lounge-game .playing-card{
  box-shadow:0 3px 7px #00180d50,0 1px 2px #00180d40!important;
  transition:box-shadow 120ms ease,filter 120ms ease;
}
.lounge-game .column .playing-card:hover{box-shadow:0 5px 12px #00180d63,0 2px 4px #00180d50!important;filter:brightness(1.015)}
.lounge-game .playing-card.chosen{outline:3px solid #f0ce74!important;box-shadow:0 0 0 2px #fff3c255,0 7px 16px #00180d70!important}
.lounge-game .column.drop-target{background:#e8dba013!important;outline:2px solid #d7b967!important;outline-offset:-2px}

.lounge-game .foundation,.lounge-game .kl-slot,.lounge-game .ft-slot,.lounge-game .fc-slot,.lounge-game .ss-slot,.lounge-game .dk-slot,.lounge-game .ds-slot{
  border-color:#e9ddbb63!important;
  background:linear-gradient(180deg,#ffffff08,#001d1214)!important;
  box-shadow:inset 0 0 0 1px #ffffff08,inset 0 3px 8px #001b1029;
}
.lounge-game .foundation:not(.complete):empty:after{content:'♠';color:#dbe7d62c;font:28px Georgia,serif}
.lounge-game .stock-caption{color:#d6e1d3;font-size:11px;letter-spacing:.1px}
.lounge-game .table-status{
  position:relative;z-index:1;display:flex;align-items:center;min-height:34px;
  color:#e6eee2;font-size:12px;line-height:1.35;padding:7px 10px;border-top:1px solid #dae5c91c;
  background:linear-gradient(180deg,#ffffff05,#001a101f);border-radius:8px;
}

.game-help-card{
  background:linear-gradient(180deg,#fffdf8,#f8f0e4);
  border:1px solid #ddcfbb;border-radius:15px;margin:14px 0 18px;padding:0;
  box-shadow:0 7px 22px #503b2011;overflow:hidden;
}
.game-help-card summary{
  list-style:none;cursor:pointer;padding:14px 16px;font:600 15px Georgia,serif;color:#244b40;
  display:flex;align-items:center;gap:9px;
}
.game-help-card summary::-webkit-details-marker{display:none}
.game-help-card summary:before{content:'♠';width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#efe1c8;color:#234b40;font-size:13px;border:1px solid #d2bb8f}
.game-help-card summary:after{content:'▾';margin-left:auto;color:#9a7c4d;font:14px Segoe UI,sans-serif;transition:transform 150ms ease}
.game-help-card[open] summary:after{transform:rotate(180deg)}
.game-help-card .table-note{margin:0;padding:0 16px 16px 51px;line-height:1.65;color:#58685e;font-size:12.5px}

@media(min-width:1180px){
  body.ludicera-lounge:before,body.ludicera-lounge:after{position:fixed;z-index:-1;opacity:.5;pointer-events:none;filter:blur(.1px)}
  body.ludicera-lounge:before{content:'♣';left:34px;top:42%;font:112px Georgia,serif;color:#1c5a4720;transform:rotate(-12deg)}
  body.ludicera-lounge:after{content:'♦';right:38px;top:45%;font:102px Georgia,serif;color:#a4772d1c;transform:rotate(12deg)}
}

@media(max-width:860px){
  .ludicera-header{padding:9px 10px;border-radius:14px;gap:9px}
  .ludicera-header .header-visitor{order:3;margin-left:0!important}
  .ludicera-header .language-bar{order:4;margin-left:auto}
  .lounge-game .game-header{align-items:flex-start;gap:10px}
  .lounge-game .game-toolbar{width:100%;justify-content:flex-start;margin-left:0}
}
@media(max-width:700px){
  body.ludicera-lounge{padding:8px 6px 18px}
  .ludicera-header{margin-bottom:9px;min-height:0}
  .ludicera-header .logo{width:48px;height:48px}.ludicera-header .logo img{width:46px;height:46px}
  .ludicera-header :is(h1,.brand-title){font-size:25px}.ludicera-header p{font-size:11px;margin-top:3px}
  .ludicera-header .header-visitor{font-size:10px!important;padding:4px 7px!important}
  .ludicera-header .language-bar{width:auto;margin-top:0;padding:2px;gap:1px}
  .ludicera-header .language-bar button{min-width:31px;min-height:29px;padding:3px}
  .ludicera-header .language-bar img{width:22px;height:15px}
  .lounge-game .game-header{padding:0 2px;margin-bottom:9px}
  .lounge-game .game-header :is(h2,:is(h1,.brand-title).game-title){font-size:25px}.lounge-game .game-header :is(h2,:is(h1,.brand-title).game-title):before{width:30px;height:30px;font-size:19px}
  .lounge-game .game-header p{margin-left:39px;font-size:11px}
  .lounge-game .game-toolbar{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important}
  .lounge-game .game-toolbar button{min-height:42px;padding:7px 5px;font-size:11.5px}
  .lounge-game .table-scroll{padding:3px;border-radius:15px;border-width:1px}
  .lounge-game .felt{border-radius:11px!important}
  .game-help-card summary{padding:12px;font-size:14px}.game-help-card .table-note{padding:0 12px 13px 12px;font-size:11.5px}
  .game-help-card summary:before{width:23px;height:23px}
}
@media(prefers-reduced-motion:reduce){
  .lounge-game .playing-card,.lounge-game .game-toolbar button,.game-help-card summary:after{transition:none!important}
}


/* v38.2: Klondike uses the same visual card scale as Spider on desktop. */
@media(min-width:701px) and (min-height:501px){
  #kl-table #kl-columns{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:18px!important;
  }
  #kl-table #kl-columns .column{
    min-width:0!important;
  }
  #kl-table #kl-columns .column>.playing-card{
    width:76px!important;
    max-width:76px!important;
    height:108px!important;
    left:50%!important;
    transform:translateX(-50%)!important;
  }
  #kl-table .kl-top{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:18px!important;
  }
  #kl-table .kl-slot{
    width:76px!important;
    max-width:76px!important;
    height:108px!important;
    justify-self:center!important;
  }
  #kl-table #kl-stock{
    width:76px!important;
    max-width:76px!important;
    height:108px!important;
    margin-inline:auto!important;
  }
  #kl-table .kl-slot .playing-card{
    width:76px!important;
    max-width:76px!important;
    height:108px!important;
  }
  #kl-table .kl-top>div:first-child,
  #kl-table .stock-caption{text-align:center!important}
  #kl-table #kl-foundations .kl-slot{justify-self:center!important}
}

/* v38.3: one shared desktop card scale + adjustable, centered tableau spacing. */
:root{
  --ludicera-card-width:76px;
  --ludicera-card-height:108px;
  --ludicera-card-gap:44px;
}

.card-spacing-control{
  margin:18px 0 4px;padding:14px 14px 12px;border:1px solid #d8cbb8;border-radius:12px;
  background:linear-gradient(180deg,#fffdf8,#f6eee2);box-shadow:0 2px 7px #513d2410;
}
.card-spacing-control .spacing-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.card-spacing-control .spacing-label{font-weight:600;color:#24483d}
.card-spacing-control .spacing-value{font-size:12px;color:#6b756d;white-space:nowrap}
.card-spacing-control input[type=range]{width:100%;accent-color:#a67f3d;margin:5px 0 4px}
.card-spacing-control .spacing-ends{display:flex;justify-content:space-between;font-size:11px;color:#7b817b}
.card-spacing-control .spacing-note{margin:7px 0 0!important;font-size:12px;color:#677269;line-height:1.45}

@media(min-width:701px) and (min-height:501px){
  /* Every game uses the same full-width lounge table; games with fewer piles simply keep empty side space. */
  #table,#kl-table,#ft-table,#fc-table,#ss-table,#dk-table,#ds-table{
    width:min(1320px,100%)!important;
  }

  /* Fixed Spider-sized cards in every tableau. */
  #columns{grid-template-columns:repeat(10,var(--ludicera-card-width))!important}
  #kl-columns{grid-template-columns:repeat(7,var(--ludicera-card-width))!important}
  #ft-columns{grid-template-columns:repeat(10,var(--ludicera-card-width))!important}
  #fc-columns{grid-template-columns:repeat(8,var(--ludicera-card-width))!important}
  #ss-columns{grid-template-columns:repeat(10,var(--ludicera-card-width))!important}
  #dk-columns{grid-template-columns:repeat(9,var(--ludicera-card-width))!important}
  #ds-columns{grid-template-columns:repeat(10,var(--ludicera-card-width))!important}

  :is(#columns,#kl-columns,#ft-columns,#fc-columns,#ss-columns,#dk-columns,#ds-columns){
    width:100%!important;
    column-gap:var(--ludicera-card-gap)!important;
    row-gap:0!important;
    justify-content:center!important;
    justify-items:center!important;
    margin-inline:auto!important;
  }
  :is(#columns,#kl-columns,#ft-columns,#fc-columns,#ss-columns,#dk-columns,#ds-columns)>.column{
    width:var(--ludicera-card-width)!important;
    min-width:var(--ludicera-card-width)!important;
    max-width:var(--ludicera-card-width)!important;
  }
  :is(#columns,#kl-columns,#ft-columns,#fc-columns,#ss-columns,#dk-columns,#ds-columns)>.column>.playing-card{
    width:var(--ludicera-card-width)!important;
    max-width:var(--ludicera-card-width)!important;
    height:var(--ludicera-card-height)!important;
    left:50%!important;
    transform:translateX(-50%)!important;
  }

  /* Stock / waste / free cells use the same physical card dimensions. */
  :is(.kl-slot,.ft-slot,.fc-slot,.dk-slot){
    width:var(--ludicera-card-width)!important;
    max-width:var(--ludicera-card-width)!important;
    height:var(--ludicera-card-height)!important;
    aspect-ratio:auto!important;
  }
  :is(.kl-slot,.ft-slot,.fc-slot,.dk-slot) .playing-card{
    width:var(--ludicera-card-width)!important;
    max-width:var(--ludicera-card-width)!important;
    height:var(--ludicera-card-height)!important;
  }
  #kl-stock,#ft-stock,#dk-stock{
    width:var(--ludicera-card-width)!important;
    max-width:var(--ludicera-card-width)!important;
    height:var(--ludicera-card-height)!important;
  }

  /* Keep top rows balanced even though tableau pile counts differ. */
  #kl-table .kl-top,#ft-table .ft-top,#dk-table .dk-top,
  #ss-table .ss-top,#ds-table .ds-top{
    width:100%!important;
  }
  #kl-table .kl-slot,#ft-table .ft-slot,#dk-table .dk-slot{justify-self:center!important}
  #fc-cells,#fc-foundations{
    grid-template-columns:repeat(4,var(--ludicera-card-width))!important;
    justify-content:center!important;
    gap:18px!important;
  }
  .fc-top>div{display:flex;flex-direction:column;align-items:center}
  #ss-foundations,#ds-foundations{justify-items:center}
}

/* On phones keep the existing responsive, compact grid. */
@media(max-width:700px), (max-width:1000px) and (max-height:500px){
  .card-spacing-control{display:none}
}

/* v38.4: force the shared spacing value on every game's tableau grid.
   The per-game legacy rules use very specific !important gap declarations,
   so this equally-specific late rule plus the JS inline fallback makes the
   slider effective for Spider, Klondike, Forty Thieves, FreeCell,
   Simple Simon, Double Klondike and Double Scorpion. */
@media(min-width:701px) and (min-height:501px){
  #table #columns,
  #kl-table #kl-columns,
  #ft-table #ft-columns,
  #fc-table #fc-columns,
  #ss-table #ss-columns,
  #dk-table #dk-columns,
  #ds-table #ds-columns{
    column-gap:var(--ludicera-card-gap)!important;
    row-gap:0!important;
  }
}


/* v38.5: discreet card-spacing control beside the green playing surface. */
.game-table-shell{
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px;
  gap:7px;
  align-items:center;
  width:100%;
}
.game-table-shell>.table-scroll{min-width:0;width:100%}
.card-spacing-side-control{
  width:34px;
  min-height:148px;
  align-self:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  box-sizing:border-box;
  padding:7px 5px;
  border:1px solid #d8c6a8;
  border-radius:16px;
  background:linear-gradient(180deg,#fffdf8e8,#f1e6d6e0);
  box-shadow:0 3px 10px #513d2414,inset 0 1px #fff;
  color:#315347;
  opacity:.78;
  transition:opacity 140ms ease,box-shadow 140ms ease;
}
.card-spacing-side-control:hover,
.card-spacing-side-control:focus-within{
  opacity:1;
  box-shadow:0 4px 14px #513d2422,inset 0 1px #fff;
}
.card-spacing-side-control .spacing-icon{
  font:600 15px/1.1 'Segoe UI Symbol','Segoe UI',sans-serif;
  color:#876a38;
}
.card-spacing-side-control input[type=range]{
  width:18px;
  height:96px;
  margin:0;
  padding:0;
  writing-mode:vertical-lr;
  direction:rtl;
  accent-color:#a67f3d;
  cursor:ns-resize;
}
.card-spacing-side-control .spacing-value{
  min-width:20px;
  text-align:center;
  font-size:9px;
  line-height:1;
  color:#7a756c;
  font-variant-numeric:tabular-nums;
}
/* The old settings-panel version is no longer used. */
.card-spacing-control{display:none!important}

@media(max-width:900px), (max-height:500px){
  .game-table-shell{display:block}
  .card-spacing-side-control{display:none!important}
}

/* v38.6 – tighter, truly centred tableau spacing for every game. */
:root{--ludicera-card-gap:14px}
@media(min-width:701px) and (min-height:501px){
  #columns{grid-template-columns:repeat(10,var(--ludicera-card-width))!important}
  #kl-columns{grid-template-columns:repeat(7,var(--ludicera-card-width))!important}
  #ft-columns{grid-template-columns:repeat(10,var(--ludicera-card-width))!important}
  #fc-columns{grid-template-columns:repeat(8,var(--ludicera-card-width))!important}
  #ss-columns{grid-template-columns:repeat(10,var(--ludicera-card-width))!important}
  #dk-columns{grid-template-columns:repeat(9,var(--ludicera-card-width))!important}
  #ds-columns{grid-template-columns:repeat(10,var(--ludicera-card-width))!important}

  :is(#columns,#kl-columns,#ft-columns,#fc-columns,#ss-columns,#dk-columns,#ds-columns){
    width:max-content!important;
    max-width:100%!important;
    column-gap:var(--ludicera-card-gap)!important;
    row-gap:0!important;
    justify-content:start!important;
    justify-items:center!important;
    margin-inline:auto!important;
  }
  :is(#columns,#kl-columns,#ft-columns,#fc-columns,#ss-columns,#dk-columns,#ds-columns)>.column{
    width:var(--ludicera-card-width)!important;
    min-width:var(--ludicera-card-width)!important;
    max-width:var(--ludicera-card-width)!important;
  }
}

/* v38.6 slider: compact, subtle and intuitive. Bottom = closer, top = wider. */
.card-spacing-side-control{min-height:140px;width:32px;padding:6px 4px;gap:5px;opacity:.7}
.card-spacing-side-control input[type=range]{height:88px;width:18px;writing-mode:vertical-lr;direction:rtl}
.card-spacing-side-control .spacing-value{font-size:8px;color:#83786a}
.card-spacing-side-control .spacing-icon{font-size:14px}

/* v38.6 premium start page details */
#menu.premium-menu-v386{width:min(1280px,100%);position:relative}
#menu.premium-menu-v386 .window{
  border-radius:20px;border-color:#d9c9b2;background:#fffaf2db;
  box-shadow:0 18px 42px #604a2c1b,0 2px 6px #604a2c12;
  overflow:hidden;
}
#menu.premium-menu-v386 .window>.bar{display:none}
#menu.premium-menu-v386 .layout{
  grid-template-columns:280px minmax(420px,1fr) 240px;
  gap:20px;padding:18px 20px 20px;
}
#menu.premium-menu-v386 nav:before{
  content:'🎮  Spiele auswählen';display:block;margin:5px 0 14px;
  font:600 20px Georgia,serif;color:#164538;
}
#menu.premium-menu-v386 nav>.label{display:none}
#menu.premium-menu-v386 .games{height:390px;gap:10px;padding:2px 7px 2px 2px}
#menu.premium-menu-v386 .game{
  position:relative;min-height:66px;padding:12px 34px 11px 62px;border-radius:12px;
  background:linear-gradient(180deg,#fffdf7,#f8f0e4);border-color:#ded0bd;
  box-shadow:0 1px 0 #fff inset;color:#263f37;font:500 16px Georgia,serif;
}
#menu.premium-menu-v386 .game:before{
  content:attr(data-suit);position:absolute;left:20px;top:50%;transform:translateY(-50%);
  font:30px Georgia,serif;color:#1e5a46;
}
#menu.premium-menu-v386 .game.game-available:after{
  content:'›';position:absolute;right:14px;top:50%;transform:translateY(-53%);
  font:34px/1 Georgia,serif;color:#b69456;
}
#menu.premium-menu-v386 .game.selected{
  color:#fff;background:linear-gradient(180deg,#0c6547,#064f38);border-color:#326f5b;
  box-shadow:0 8px 18px #1849391e,inset 0 1px #ffffff24;
}
#menu.premium-menu-v386 .game.selected:before{color:#fff}
#menu.premium-menu-v386 .game.selected:after{color:#fff}
#menu.premium-menu-v386 .game small{font:11px Segoe UI,Arial,sans-serif;margin-top:6px}
#menu.premium-menu-v386 .game:disabled{opacity:.58}
#menu.premium-menu-v386 .game:disabled:before{content:'♣';color:#6c746f}

#menu.premium-menu-v386 .preview{
  position:relative;overflow:hidden;min-height:390px;border-radius:16px;padding:36px 30px 28px;
  background:
    radial-gradient(circle at 30% 15%,#ffffff12 0 2px,transparent 3px),
    linear-gradient(145deg,#147c4e,#06583d 62%,#034a34);
  box-shadow:inset 0 0 0 1px #e4d6a82a,0 10px 24px #25482c1d;
}
#menu.premium-menu-v386 .preview:before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:.17;
  background:repeating-linear-gradient(12deg,transparent 0 5px,#fff 5px 6px,transparent 6px 11px);
  mix-blend-mode:soft-light;
}
#menu.premium-menu-v386 .preview>*{position:relative;z-index:1}
#menu.premium-menu-v386 .preview-ribbon{
  position:absolute;z-index:2;right:14px;top:14px;width:auto;min-width:0;padding:7px 12px;
  transform:none;border:1px solid #e0bd63;border-radius:999px;
  background:linear-gradient(180deg,#fff0bd,#e9c969);color:#5b431b;
  box-shadow:0 2px 7px #2b1e0b24;font:600 13px Georgia,serif;letter-spacing:.1px;
  line-height:1;white-space:nowrap;
}
#menu.premium-menu-v386 .preview-ribbon::before{content:'★';margin-right:5px;color:#9f7622;font-size:12px}
#menu.premium-menu-v386 .preview .cards{margin-top:4px;margin-bottom:22px;transform:scale(1.08)}
#menu.premium-menu-v386 .preview :is(h2,:is(h1,.brand-title).game-title){font-size:45px;text-shadow:0 2px 5px #001e1430}
#menu.premium-menu-v386 .preview p{font:20px Georgia,serif;color:#eef4eb;margin-top:2px}
#menu.premium-menu-v386 .preview .start{
  min-width:290px;font:600 22px Georgia,serif;margin-top:26px;padding:15px 24px;border-radius:11px;
  background:linear-gradient(180deg,#f8d76d,#e2b84f);box-shadow:0 5px 0 #b4872f,0 9px 18px #123a292b;
}
#menu.premium-menu-v386 .preview-benefits{
  display:flex;justify-content:space-between;gap:12px;width:100%;margin-top:28px;padding-top:16px;
  border-top:1px solid #ffffff25;color:#f2e8c8;font-size:12px;
}
#menu.premium-menu-v386 .preview-benefits span{display:flex;align-items:center;gap:6px}
#menu.premium-menu-v386 .preview-benefits b{font-weight:500;color:#f7f1e0}

#menu.premium-menu-v386 .actions{padding:20px 0 0;gap:11px}
#menu.premium-menu-v386 .actions button{
  min-height:58px;display:flex;align-items:center;justify-content:flex-start;gap:14px;
  padding:12px 20px;border-radius:12px;background:linear-gradient(180deg,#fffdf7,#f5ecdf);
  border-color:#dfd0bd;font:18px Georgia,serif;box-shadow:0 2px 5px #503b1d10;
}
#menu.premium-menu-v386 .actions .action-icon{
  width:34px;height:34px;display:grid;place-items:center;border-radius:50%;
  background:#0a6447;color:#fff;font:700 18px Segoe UI,Arial,sans-serif;
}
#menu.premium-menu-v386 .menu-joker{margin-top:auto;padding-top:8px;text-align:center}
#menu.premium-menu-v386 .menu-joker img{width:108px;height:108px}
#menu.premium-menu-v386 .bottom{display:none}

.menu-discover{
  margin-top:16px;padding:15px 18px 18px;border:1px solid #ddcfbc;border-radius:18px;
  background:linear-gradient(180deg,#fffaf1e8,#f7eee1e5);box-shadow:0 12px 28px #5a43261a;
}
.discover-head :is(h2,:is(h1,.brand-title).game-title){font:600 19px Georgia,serif;color:#174738;margin:0 0 12px}
.discover-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.discover-tile{
  position:relative;min-height:145px;overflow:hidden;border:1px solid #ddcfbc;border-radius:13px;
  background:linear-gradient(145deg,#f8f4e9,#e8e0cf);color:#183e35;padding:17px 14px 13px;text-align:center;
  box-shadow:inset 0 1px #fff,0 3px 8px #49351b10;
}
.discover-tile:hover{transform:translateY(-1px);box-shadow:inset 0 1px #fff,0 6px 14px #49351b1c}
.discover-cards{display:flex;justify-content:center;height:62px;margin-bottom:7px}
.discover-cards i{
  width:48px;height:62px;margin-left:-9px;display:grid;place-items:center;border-radius:7px;background:#fffdf6;
  border:1px solid #cfc5b5;box-shadow:0 4px 7px #3d2d1a2b;font:24px Georgia,serif;font-style:normal;
}
.discover-cards i:first-child{margin-left:0;transform:rotate(-10deg)}
.discover-cards i:last-child{transform:rotate(10deg)}
.discover-tile strong{display:block;font:600 21px Georgia,serif}
.discover-tile small{display:block;margin-top:4px;color:#687269;font-size:11px}

@media(max-width:1050px){
  #menu.premium-menu-v386 .layout{grid-template-columns:230px minmax(360px,1fr) 205px;gap:14px}
  #menu.premium-menu-v386 .preview .start{min-width:0;width:90%;font-size:19px}
  .discover-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  #menu.premium-menu-v386 .layout{grid-template-columns:1fr;padding:14px}
  #menu.premium-menu-v386 .games{height:250px}
  #menu.premium-menu-v386 .preview{min-height:330px}
  #menu.premium-menu-v386 .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:0}
  #menu.premium-menu-v386 .actions button{min-height:48px;font-size:15px;padding:9px 12px}
  #menu.premium-menu-v386 .menu-joker{display:none}
  #menu.premium-menu-v386 .preview-benefits{font-size:10px;gap:5px;flex-wrap:wrap}
  .discover-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  #menu.premium-menu-v386 .preview :is(h2,:is(h1,.brand-title).game-title){font-size:34px}
  #menu.premium-menu-v386 .preview p{font-size:16px}
  #menu.premium-menu-v386 .preview .start{font-size:17px}
  .discover-grid{grid-template-columns:1fr}
}

/* v38.7 – compact upper card areas.
   The top target/free-cell groups now use the SAME adjustable gap as the tableau,
   instead of stretching across the full green table. Desktop only; mobile keeps its
   existing compact responsive layout. */
@media(min-width:701px) and (min-height:501px){
  /* Spider: stock left, completed-sequence targets compact at the right. */
  #table .table-top{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    gap:var(--ludicera-card-gap)!important;
  }
  #table #foundations{
    display:grid!important;
    grid-template-columns:repeat(8,61px)!important;
    gap:var(--ludicera-card-gap)!important;
    width:max-content!important;
    max-width:100%!important;
    justify-content:start!important;
  }
  #table #foundations>.foundation{
    width:61px!important;
    min-width:61px!important;
    max-width:61px!important;
  }

  /* Klondike / Forty Thieves / Double Klondike:
     stock + waste remain compact on the left; foundations become one compact group on the right. */
  #kl-table .kl-top,
  #ft-table .ft-top,
  #dk-table .dk-top{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:var(--ludicera-card-gap)!important;
    width:100%!important;
  }
  #kl-table .kl-spacer{display:none!important}
  #kl-table #kl-foundations,
  #ft-table #ft-foundations,
  #dk-table #dk-foundations{
    display:grid!important;
    grid-column:auto!important;
    gap:var(--ludicera-card-gap)!important;
    width:max-content!important;
    max-width:100%!important;
    margin-left:auto!important;
    justify-content:start!important;
    justify-items:center!important;
  }
  #kl-table #kl-foundations{grid-template-columns:repeat(4,var(--ludicera-card-width))!important}
  #ft-table #ft-foundations,
  #dk-table #dk-foundations{grid-template-columns:repeat(8,var(--ludicera-card-width))!important}

  /* FreeCell: free cells compact left, foundations compact right. */
  #fc-table .fc-top{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    gap:var(--ludicera-card-gap)!important;
    width:100%!important;
  }
  #fc-table .fc-top>div{
    width:max-content!important;
    min-width:0!important;
    align-items:flex-start!important;
  }
  #fc-table #fc-cells,
  #fc-table #fc-foundations{
    display:grid!important;
    grid-template-columns:repeat(4,var(--ludicera-card-width))!important;
    gap:var(--ludicera-card-gap)!important;
    width:max-content!important;
    max-width:100%!important;
    justify-content:start!important;
    justify-items:center!important;
  }

  /* Simple Simon / Double Scorpion: target rows form one compact group at the right. */
  #ss-table .ss-top,
  #ds-table .ds-top{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:flex-end!important;
    gap:0!important;
    width:100%!important;
  }
  #ss-table #ss-foundations,
  #ds-table #ds-foundations{
    display:grid!important;
    grid-column:auto!important;
    gap:var(--ludicera-card-gap)!important;
    width:max-content!important;
    max-width:100%!important;
    margin-left:auto!important;
    justify-content:start!important;
    justify-items:center!important;
  }
  #ss-table #ss-foundations{grid-template-columns:repeat(4,var(--ludicera-card-width))!important}
  #ds-table #ds-foundations{grid-template-columns:repeat(8,var(--ludicera-card-width))!important}

  /* Completion slots that previously inherited flexible grid widths now use the same
     physical width as cards, so changing the slider only changes the gaps. */
  #ss-table .ss-slot,
  #ds-table .ds-slot{
    width:var(--ludicera-card-width)!important;
    min-width:var(--ludicera-card-width)!important;
    max-width:var(--ludicera-card-width)!important;
    height:var(--ludicera-card-height)!important;
    aspect-ratio:auto!important;
  }
}

/* v38.13: stable toolbar + floating deal-skip control */
.table-scroll{position:relative}
.deal-skip{
  position:absolute!important;
  top:10px!important;
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%)!important;
  z-index:140!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  width:auto!important;
  min-height:34px!important;
  padding:7px 12px!important;
  border:1px solid rgba(191,160,80,.75)!important;
  border-radius:999px!important;
  background:rgba(255,250,238,.94)!important;
  color:#25463a!important;
  box-shadow:0 4px 14px rgba(35,27,14,.16)!important;
  backdrop-filter:blur(4px);
  white-space:nowrap;
}
.deal-skip:hover,.deal-skip:focus-visible{background:#fffaf0!important;box-shadow:0 6px 18px rgba(35,27,14,.22)!important}
.context-menu .menu-trailing{min-width:20px;text-align:right;font-weight:800;color:#2c6c4f}
@media(max-width:700px), (max-width:1000px) and (max-height:500px){
 .deal-skip{top:6px!important;min-height:30px!important;padding:5px 9px!important;font-size:11px!important}
}


/* v38.17 – safety inset for exposed top cards.
   Prevents stock/waste/free-cell/foundation cards from touching or being clipped by slot edges.
   Applies consistently across all current games without changing tableau geometry. */
@media(min-width:701px) and (min-height:501px){
  :is(
    #kl-stock,#kl-waste,
    #ft-stock,#ft-waste,
    #dk-stock,#dk-waste,
    #kl-foundations .kl-slot,
    #ft-foundations .ft-slot,
    #dk-foundations .dk-slot,
    #fc-cells .fc-slot,
    #fc-foundations .fc-slot,
    #ss-foundations .ss-slot,
    #ds-foundations .ds-slot
  ){
    overflow:visible!important;
  }

  :is(
    #kl-stock,#kl-waste,
    #ft-stock,#ft-waste,
    #dk-stock,#dk-waste,
    #kl-foundations .kl-slot,
    #ft-foundations .ft-slot,
    #dk-foundations .dk-slot,
    #fc-cells .fc-slot,
    #fc-foundations .fc-slot,
    #ss-foundations .ss-slot,
    #ds-foundations .ds-slot
  ) > .playing-card{
    width:calc(100% - 6px)!important;
    max-width:calc(100% - 6px)!important;
    justify-self:center!important;
    align-self:center!important;
    margin:0!important;
    clip-path:none!important;
  }
}

@media(max-width:700px), (max-width:1000px) and (max-height:500px){
  :is(
    #kl-stock,#kl-waste,
    #ft-stock,#ft-waste,
    #dk-stock,#dk-waste,
    #kl-foundations .kl-slot,
    #ft-foundations .ft-slot,
    #dk-foundations .dk-slot,
    #fc-cells .fc-slot,
    #fc-foundations .fc-slot,
    #ss-foundations .ss-slot,
    #ds-foundations .ds-slot
  ){overflow:visible!important}
  :is(
    #kl-stock,#kl-waste,
    #ft-stock,#ft-waste,
    #dk-stock,#dk-waste,
    #kl-foundations .kl-slot,
    #ft-foundations .ft-slot,
    #dk-foundations .dk-slot,
    #fc-cells .fc-slot,
    #fc-foundations .fc-slot,
    #ss-foundations .ss-slot,
    #ds-foundations .ds-slot
  ) > .playing-card{
    width:calc(100% - 4px)!important;
    max-width:calc(100% - 4px)!important;
    justify-self:center!important;
    align-self:center!important;
    margin:0!important;
    clip-path:none!important;
  }
}

/* v38.18 – one exact desktop card size everywhere.
   All visible cards on the green tables use the same 76 × 108 px footprint,
   including stock/waste/free-cell/foundation cards. Top slots stay overflow-visible
   so shadows/edges are never clipped; unlike v38.17, top cards are no longer shrunk. */
@media(min-width:701px) and (min-height:501px){
  .lounge-game .playing-card{
    box-sizing:border-box!important;
    width:var(--ludicera-card-width)!important;
    min-width:var(--ludicera-card-width)!important;
    max-width:var(--ludicera-card-width)!important;
    height:var(--ludicera-card-height)!important;
    min-height:var(--ludicera-card-height)!important;
    max-height:var(--ludicera-card-height)!important;
  }

  :is(
    #kl-stock,#kl-waste,#ft-stock,#ft-waste,#dk-stock,#dk-waste,
    #kl-foundations .kl-slot,#ft-foundations .ft-slot,#dk-foundations .dk-slot,
    #fc-cells .fc-slot,#fc-foundations .fc-slot,
    #ss-foundations .ss-slot,#ds-foundations .ds-slot
  ){
    box-sizing:border-box!important;
    width:var(--ludicera-card-width)!important;
    min-width:var(--ludicera-card-width)!important;
    max-width:var(--ludicera-card-width)!important;
    height:var(--ludicera-card-height)!important;
    min-height:var(--ludicera-card-height)!important;
    max-height:var(--ludicera-card-height)!important;
    overflow:visible!important;
  }

  :is(
    #kl-stock,#kl-waste,#ft-stock,#ft-waste,#dk-stock,#dk-waste,
    #kl-foundations .kl-slot,#ft-foundations .ft-slot,#dk-foundations .dk-slot,
    #fc-cells .fc-slot,#fc-foundations .fc-slot,
    #ss-foundations .ss-slot,#ds-foundations .ds-slot
  ) > .playing-card{
    width:var(--ludicera-card-width)!important;
    min-width:var(--ludicera-card-width)!important;
    max-width:var(--ludicera-card-width)!important;
    height:var(--ludicera-card-height)!important;
    min-height:var(--ludicera-card-height)!important;
    max-height:var(--ludicera-card-height)!important;
    margin:0!important;
    justify-self:center!important;
    align-self:center!important;
    clip-path:none!important;
  }
}

/* v38.18 – autoplay speed control inside Settings. */
.autoplay-speed-settings{
  margin:18px 0 8px;padding:14px 14px 12px;border:1px solid #d8cbb8;border-radius:12px;
  background:linear-gradient(180deg,#fffdf7,#f7efe3);box-shadow:0 2px 6px #503b1d10;
}
.autoplay-speed-settings .autoplay-speed-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;font-weight:650}
.autoplay-speed-settings input[type="range"]{width:100%;accent-color:#b88b37}
.autoplay-speed-settings .autoplay-speed-scale{display:flex;justify-content:space-between;gap:12px;margin-top:4px;color:#777064;font-size:11px}
.autoplay-speed-settings .autoplay-speed-value{color:#7b632f;font-size:12px;white-space:nowrap}


/* v38.21 – decorative home-page surround. Pure CSS + existing project assets:
   no decorative raster assets are required, and the game pages stay untouched. */
body.ludicera-lounge{overflow-x:hidden}
#menu.premium-menu-v386{isolation:isolate;overflow:visible}
#menu.premium-menu-v386>.window,
#menu.premium-menu-v386>.menu-discover,
#menu.premium-menu-v386>.foot{position:relative;z-index:2}
.home-decor-layer{
  position:absolute;inset:0;z-index:0;pointer-events:none;overflow:visible;
  font-family:"Segoe Print","Bradley Hand","Brush Script MT","Comic Sans MS",cursive;
  color:#a77a3d;
}
.home-decor-layer .decor-script{
  position:absolute;white-space:normal;text-align:center;
  font-size:25px;line-height:1.15;font-weight:500;font-style:italic;
  color:#a97737;text-shadow:0 1px 0 #fff8;transform:rotate(-5deg);
  filter:drop-shadow(0 1px 0 #fff8);
}
.home-decor-layer .decor-script::after{
  content:"";display:block;width:35px;height:2px;margin:10px auto 0;
  background:#ba8843;border-radius:99px;opacity:.8
}
.home-decor-layer .decor-script-top{right:-150px;top:-128px;width:140px;transform:rotate(-7deg)}
.home-decor-layer .decor-script-left{left:-150px;top:85px;width:125px;transform:rotate(-8deg);font-size:22px}

.decor-plant{position:absolute;left:-172px;top:-120px;width:175px;height:245px;filter:drop-shadow(0 12px 14px #49371b25)}
.decor-plant .stem{position:absolute;left:82px;top:45px;width:5px;height:135px;border-radius:5px;background:linear-gradient(#476b2d,#385425)}
.decor-plant .leaf{position:absolute;width:75px;height:34px;background:linear-gradient(135deg,#355e27,#6d9038 65%,#2e5221);border-radius:95% 8% 95% 8%;box-shadow:inset 0 1px 5px #ffffff25,0 5px 8px #26361922;transform-origin:90% 50%}
.decor-plant .leaf:nth-child(2){left:20px;top:26px;transform:rotate(22deg)}
.decor-plant .leaf:nth-child(3){left:78px;top:33px;transform:scaleX(-1) rotate(18deg)}
.decor-plant .leaf:nth-child(4){left:7px;top:73px;transform:rotate(4deg)}
.decor-plant .leaf:nth-child(5){left:86px;top:79px;transform:scaleX(-1) rotate(1deg)}
.decor-plant .leaf:nth-child(6){left:22px;top:119px;transform:rotate(-14deg)}
.decor-plant .leaf:nth-child(7){left:79px;top:126px;transform:scaleX(-1) rotate(-12deg)}
.decor-plant .leaf:nth-child(8){left:46px;top:2px;width:65px;transform:rotate(50deg)}
.decor-plant .pot{position:absolute;left:43px;bottom:0;width:88px;height:72px;background:linear-gradient(100deg,#eee4d3,#cbbda8);border-radius:14px 14px 34px 34px;box-shadow:inset 10px 0 15px #fff8,inset -8px 0 14px #88735922,0 7px 10px #49371b25}
.decor-plant .pot::before{content:"";position:absolute;left:-6px;right:-6px;top:-4px;height:14px;border-radius:50%;background:#dacdb9;border:1px solid #b6a58c}

.decor-coffee{position:absolute;right:-178px;top:115px;width:165px;height:165px;filter:drop-shadow(0 13px 15px #4a2f162f)}
.decor-coffee .saucer{position:absolute;inset:10px;border-radius:50%;background:radial-gradient(circle,#a76d3d 0 57%,#8f572e 58% 60%,#bb875a 61% 72%,#7a4928 73%);box-shadow:0 4px 12px #0002}
.decor-coffee .cup{position:absolute;left:36px;top:33px;width:95px;height:95px;border-radius:50%;background:radial-gradient(circle at 43% 42%,#5d2c12 0 37%,#8a4c21 38% 43%,#fff8ea 44% 72%,#e8d5b9 73% 100%);box-shadow:inset -5px -5px 9px #9b826355,0 5px 9px #0002}
.decor-coffee .cup::before{content:"";position:absolute;right:-27px;top:32px;width:38px;height:31px;border:10px solid #eee0ca;border-left:0;border-radius:0 28px 28px 0}
.decor-coffee .foam{position:absolute;left:57px;top:51px;width:50px;height:37px;border-radius:50%;background:radial-gradient(circle at 30% 35%,#d5a36b 0 4%,transparent 5%),radial-gradient(circle at 65% 56%,#c28a51 0 3%,transparent 4%);opacity:.75}

.decor-book{position:absolute;left:-184px;top:315px;width:145px;height:230px;padding:28px 18px 18px;box-sizing:border-box;border-radius:13px;background:linear-gradient(110deg,#4a291a,#6d3d27 48%,#3d2218);border:2px solid #8b603e;box-shadow:inset 0 0 0 4px #3b2015,inset 0 0 0 6px #8a5d38,0 14px 24px #39271638;transform:rotate(-9deg);color:#d5a857;text-align:center}
.decor-book::before{content:"";position:absolute;inset:8px;border:1px solid #a57548;border-radius:8px;opacity:.7}
.decor-book .book-script{position:relative;z-index:1;font-family:"Segoe Print","Bradley Hand","Brush Script MT",cursive;font-size:18px;line-height:1.2;font-style:italic}
.decor-book img{position:absolute;z-index:1;width:58px;height:58px;object-fit:contain;left:43px;bottom:25px;filter:sepia(1) saturate(.8) brightness(1.2);opacity:.88}

.decor-deck{position:absolute;right:-178px;top:390px;width:150px;height:225px;filter:drop-shadow(0 12px 16px #2530412f)}
.decor-deck .decor-card-back{position:absolute;width:104px;height:158px;border-radius:8px;border:5px solid #fff9ed;background-color:#183c70;background-image:repeating-linear-gradient(45deg,transparent 0 4px,#ffffff35 4px 5px),repeating-linear-gradient(-45deg,transparent 0 4px,#ffffff35 4px 5px);box-shadow:inset 0 0 0 2px #10274b,0 7px 12px #0003}
.decor-deck .decor-card-back::after{content:"♠";position:absolute;inset:14px;border:1px solid #dfc985aa;border-radius:5px;display:grid;place-items:center;color:#e7d493;font:48px Georgia,serif}
.decor-deck .decor-card-back:nth-child(1){left:28px;top:4px;transform:rotate(16deg)}
.decor-deck .decor-card-back:nth-child(2){left:17px;top:17px;transform:rotate(11deg)}
.decor-deck .decor-card-back:nth-child(3){left:7px;top:31px;transform:rotate(7deg)}

.decor-bottom-leaves{position:absolute;right:-160px;top:650px;width:150px;height:110px;opacity:.48}
.decor-bottom-leaves span{position:absolute;width:80px;height:34px;border-radius:95% 8% 95% 8%;background:linear-gradient(135deg,#54753a,#879b60);transform-origin:right center}
.decor-bottom-leaves span:nth-child(1){right:0;top:12px;transform:rotate(-25deg)}
.decor-bottom-leaves span:nth-child(2){right:26px;top:53px;transform:rotate(12deg)}
.decor-bottom-leaves span:nth-child(3){right:68px;top:20px;transform:rotate(42deg)}

body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header{
  position:relative;z-index:3;border-bottom-color:#d4bd91;
}
body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header::after{
  content:"";position:absolute;left:8%;right:8%;bottom:-8px;height:14px;border-bottom:2px solid #d8b975;border-radius:0 0 50% 50%;opacity:.5;pointer-events:none
}

@media(max-width:1390px){
  .home-decor-layer .decor-plant,
  .home-decor-layer .decor-coffee,
  .home-decor-layer .decor-book,
  .home-decor-layer .decor-deck,
  .home-decor-layer .decor-script,
  .home-decor-layer .decor-bottom-leaves{display:none}
}
@media(max-width:760px){
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header::after{display:none}
}

/* v38.22 – start page visually aligned much more closely with the approved premium mockup. */
@media(min-width:1400px) and (min-height:760px){
  body.ludicera-lounge:has(#menu:not([hidden])){
    padding-top:0;
    background:
      radial-gradient(circle at 7% 8%,rgba(255,255,255,.92) 0 3.5%,transparent 9%),
      radial-gradient(circle at 94% 92%,rgba(116,143,84,.10) 0 3%,transparent 11%),
      linear-gradient(180deg,#fbf6ec 0%,#f3e9da 62%,#eee0cf 100%);
  }
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header{
    width:min(1440px,calc(100vw - 300px));
    min-height:126px;
    padding:22px 30px 28px;
    margin:0 auto 28px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    overflow:visible;
    isolation:isolate;
  }
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header::before{
    content:"";
    position:absolute;
    z-index:-1;
    left:50%;top:-26px;
    transform:translateX(-50%);
    width:min(1800px,100vw);
    height:166px;
    background:linear-gradient(180deg,rgba(255,253,247,.98),rgba(248,239,226,.97));
    border-bottom:2px solid rgba(190,145,67,.54);
    border-radius:0 0 50% 50% / 0 0 28px 28px;
    box-shadow:0 14px 30px rgba(80,59,31,.12);
  }
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header::after{
    content:"";
    position:absolute;
    left:-8%;right:-8%;bottom:-2px;height:18px;
    border-bottom:1px solid rgba(255,255,255,.8);
    border-radius:0 0 50% 50%;
    opacity:.95;
  }
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header .logo{
    width:92px;height:92px;
  }
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header .logo img{
    width:88px;height:88px;
    filter:drop-shadow(0 5px 6px rgba(73,55,25,.22));
  }
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header :is(h1,.brand-title){
    font-size:56px;line-height:.98;letter-spacing:.2px;
  }
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header p{
    font:22px/1.15 Georgia,serif;color:#534d43;margin-top:8px;
  }
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header .header-visitor{
    margin-left:auto!important;
    padding:9px 15px!important;
    font-size:13px!important;
    background:#fffaf1e8!important;
    border-color:#dfcfb2!important;
    box-shadow:inset 0 1px #fff,0 2px 7px rgba(83,62,31,.08)!important;
  }
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header .language-bar{
    margin-left:16px;
    padding:6px 8px;
    gap:5px;
    border-radius:12px;
    background:#fffaf1e5;
    border:1px solid #ddc9a8;
    box-shadow:inset 0 1px #fff,0 2px 7px rgba(83,62,31,.08);
  }
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header .language-bar button{
    min-width:38px;min-height:34px;padding:4px 5px;
  }
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header .language-bar img{
    width:27px;height:18px;
  }

  #menu.premium-menu-v386{
    width:min(1260px,calc(100vw - 380px));
    margin:0 auto;
  }
  #menu.premium-menu-v386 .window{
    border-radius:18px;
    background:linear-gradient(180deg,rgba(255,251,242,.97),rgba(250,242,230,.96));
    border-color:#d8c5a8;
    box-shadow:0 20px 45px rgba(85,58,25,.17),0 3px 9px rgba(85,58,25,.09);
  }
  #menu.premium-menu-v386 .layout{
    grid-template-columns:275px minmax(520px,1fr) 250px;
    gap:18px;
    padding:18px 20px 20px;
  }
  #menu.premium-menu-v386 nav:before{
    margin:5px 0 16px;
    font-size:24px;
  }
  #menu.premium-menu-v386 .games{
    height:420px;
  }
  #menu.premium-menu-v386 .game{
    min-height:72px;
    padding:13px 38px 12px 66px;
    font-size:18px;
  }
  #menu.premium-menu-v386 .game:before{font-size:32px}
  #menu.premium-menu-v386 .game small{font-size:12px}

  #menu.premium-menu-v386 .preview{
    min-height:470px;
    padding:44px 40px 28px;
    border-radius:17px;
    background:
      radial-gradient(circle at 35% 15%,rgba(255,255,255,.12) 0 2px,transparent 3px),
      linear-gradient(145deg,#118052,#065c3f 60%,#034a35);
    box-shadow:inset 0 0 0 1px rgba(241,220,157,.26),0 12px 28px rgba(37,72,44,.19);
  }
  #menu.premium-menu-v386 .preview:before{
    opacity:.12;
    background:repeating-linear-gradient(12deg,transparent 0 8px,rgba(255,255,255,.75) 8px 9px,transparent 9px 17px);
  }
  #menu.premium-menu-v386 .preview-ribbon{
    right:-31px;top:18px;
    width:150px;padding:9px 16px;
    border:0;border-radius:0;
    transform:rotate(27deg);
    background:linear-gradient(180deg,#f6dc87,#dbae44);
    color:#523b17;
    box-shadow:0 4px 10px rgba(43,30,11,.22);
    font-size:16px;text-align:center;
  }
  #menu.premium-menu-v386 .preview-ribbon::before{font-size:13px}
  #menu.premium-menu-v386 .preview .cards{margin-top:8px;margin-bottom:22px;transform:scale(1.35)}
  #menu.premium-menu-v386 .preview :is(h2,:is(h1,.brand-title).game-title){font-size:54px;margin-top:8px}
  #menu.premium-menu-v386 .preview p{font-size:23px}
  #menu.premium-menu-v386 .preview .start{
    min-width:350px;
    font-size:25px;
    padding:17px 28px;
    margin-top:28px;
    border-radius:12px;
  }
  #menu.premium-menu-v386 .preview-benefits{
    margin-top:34px;padding-top:18px;font-size:13px;
  }
  #menu.premium-menu-v386 .actions{
    padding-top:20px;gap:12px;
  }
  #menu.premium-menu-v386 .actions button{
    min-height:70px;
    padding:14px 20px;
    font-size:20px;
  }
  #menu.premium-menu-v386 .actions .action-icon{
    width:38px;height:38px;font-size:19px;
  }
  #menu.premium-menu-v386 .menu-joker img{width:138px;height:138px}

  .menu-discover{
    margin-top:18px;
    padding:15px 18px 18px;
  }
  .discover-head :is(h2,:is(h1,.brand-title).game-title){font-size:21px}
  .discover-tile{min-height:150px}

  /* Surrounding decoration positions/sizes closely match the approved mockup. */
  .home-decor-layer .decor-script-top{right:-168px;top:-148px;width:155px;font-size:28px;transform:rotate(-7deg)}
  .home-decor-layer .decor-script-left{left:-175px;top:130px;width:145px;font-size:25px;transform:rotate(-8deg)}
  .decor-plant{left:-220px;top:-155px;width:215px;height:310px}
  .decor-plant .stem{left:103px;top:60px;height:180px}
  .decor-plant .leaf{width:92px;height:39px;filter:saturate(.95)}
  .decor-plant .leaf:nth-child(2){left:22px;top:34px}
  .decor-plant .leaf:nth-child(3){left:104px;top:42px}
  .decor-plant .leaf:nth-child(4){left:7px;top:92px}
  .decor-plant .leaf:nth-child(5){left:112px;top:98px}
  .decor-plant .leaf:nth-child(6){left:23px;top:150px}
  .decor-plant .leaf:nth-child(7){left:104px;top:157px}
  .decor-plant .leaf:nth-child(8){left:54px;top:0;width:85px}
  .decor-plant .pot{left:55px;width:106px;height:83px}

  .decor-book{left:-215px;top:350px;width:172px;height:265px;padding-top:34px}
  .decor-book .book-script{font-size:20px}
  .decor-book img{width:68px;height:68px;left:51px;bottom:29px}

  .decor-coffee{right:-220px;top:92px;width:195px;height:195px}
  .decor-coffee .saucer{inset:8px;background:radial-gradient(circle,#b07b4a 0 57%,#8c572f 58% 61%,#c59669 62% 74%,#7b4928 75%)}
  .decor-coffee .cup{left:42px;top:41px;width:112px;height:112px;background:radial-gradient(circle at 45% 45%,#55250f 0 33%,#7d3e1a 34% 41%,#fdf4e4 42% 72%,#dec7a8 73% 100%)}
  .decor-coffee .cup::before{right:-32px;top:38px;width:44px;height:36px;border-width:11px}
  .decor-coffee .foam{left:67px;top:60px;width:55px;height:40px}

  .decor-deck{right:-220px;top:390px;width:182px;height:250px}
  .decor-deck .decor-card-back{width:118px;height:177px;border-width:5px}
  .decor-deck .decor-card-back::after{font-size:54px}
  .decor-deck .decor-card-back:nth-child(1){left:42px;top:4px}
  .decor-deck .decor-card-back:nth-child(2){left:27px;top:18px}
  .decor-deck .decor-card-back:nth-child(3){left:12px;top:34px}
  .decor-bottom-leaves{right:-190px;top:690px}
}

@media(min-width:1400px) and (max-height:850px){
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header{min-height:110px;padding-top:15px;padding-bottom:20px;margin-bottom:20px}
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header::before{height:145px}
  #menu.premium-menu-v386 .preview{min-height:410px}
  #menu.premium-menu-v386 .games{height:360px}
  #menu.premium-menu-v386 .game{min-height:62px}
  #menu.premium-menu-v386 .actions button{min-height:60px}
  .decor-book{top:315px}.decor-deck{top:350px}.decor-bottom-leaves{display:none}
}

/* v38.22b – use the available wide desktop canvas like the approved reference. */
@media(min-width:1700px) and (min-height:760px){
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header{
    width:min(1680px,calc(100vw - 300px));
  }
  #menu.premium-menu-v386{
    width:min(1660px,calc(100vw - 420px));
  }
  #menu.premium-menu-v386 .layout{
    grid-template-columns:320px minmax(620px,1fr) 285px;
    gap:22px;
    padding:20px 22px 22px;
  }
  #menu.premium-menu-v386 .games{height:430px}
  #menu.premium-menu-v386 .preview{min-height:485px}
  #menu.premium-menu-v386 .actions button{min-height:72px}
  .decor-plant{left:-225px}
  .decor-book{left:-220px}
  .decor-coffee{right:-225px}
  .decor-deck{right:-222px}
  .home-decor-layer .decor-script-top{right:-175px}
  .home-decor-layer .decor-script-left{left:-178px}
}

/* v38.23 – use exact decorative crops from the approved premium reference. */
@media(min-width:1400px) and (min-height:720px){
  body.ludicera-lounge:has(#menu:not([hidden])){
    background:linear-gradient(180deg,#fbf6ec 0%,#f3e9da 62%,#eee0cf 100%);
  }
  /* Real reference crops, so the outer lounge looks like the approved mockup. */
  .decor-plant{
    left:-220px!important;top:-154px!important;width:205px!important;height:300px!important;
    background:url('/assets/decor/plant_ref.png') center/100% 100% no-repeat!important;
    filter:none!important;
  }
  .decor-plant>*{display:none!important}

  .decor-coffee{
    right:-222px!important;top:68px!important;width:222px!important;height:335px!important;
    background:url('/assets/decor/coffee_ref.png') center/100% 100% no-repeat!important;
    filter:none!important;
  }
  .decor-coffee>*{display:none!important}

  .decor-deck{
    right:-242px!important;top:385px!important;width:242px!important;height:335px!important;
    background:url('/assets/decor/deck_ref.png') center/100% 100% no-repeat!important;
    filter:none!important;
  }
  .decor-deck>*{display:none!important}

  .decor-book{
    left:-214px!important;top:320px!important;width:205px!important;height:420px!important;padding:0!important;
    border:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important;
    background:url('/assets/decor/book_ref.png') center/100% 100% no-repeat!important;
    color:#e0b25f!important;text-align:center!important;
  }
  .decor-book::before{
    content:""!important;display:block!important;position:absolute!important;
    left:38px!important;top:153px!important;width:132px!important;height:84px!important;
    border:0!important;border-radius:14px!important;
    background:linear-gradient(100deg,rgba(76,41,25,.98),rgba(101,56,34,.98))!important;
    box-shadow:inset 0 0 0 1px rgba(177,120,72,.22)!important;opacity:1!important;
  }
  .decor-book .book-script{
    position:absolute!important;z-index:3!important;left:40px!important;top:166px!important;width:128px!important;
    color:#e1b354!important;font-family:"Segoe Print","Bradley Hand","Brush Script MT",cursive!important;
    font-size:20px!important;line-height:1.16!important;font-style:italic!important;text-shadow:0 1px 0 #2a160b!important;
  }
  .decor-book img{display:none!important}

  .decor-bottom-leaves-right{
    display:block!important;right:-222px!important;top:700px!important;width:222px!important;height:121px!important;
    background:url('/assets/decor/right_leaves_ref.png') center/100% 100% no-repeat!important;opacity:1!important;
  }
  .decor-bottom-leaves-left{
    display:block!important;left:-220px!important;right:auto!important;top:700px!important;width:220px!important;height:121px!important;
    background:url('/assets/decor/left_leaves_ref.png') center/100% 100% no-repeat!important;opacity:1!important;
  }
  .decor-bottom-leaves>*{display:none!important}

  /* Geometry closer to the reference – central card remains generous but not stretched. */
  #menu.premium-menu-v386{width:min(1380px,calc(100vw - 500px))!important}
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header{width:min(1480px,calc(100vw - 360px))!important}
  #menu.premium-menu-v386 .layout{
    grid-template-columns:285px minmax(560px,1fr) 260px!important;
    gap:18px!important;padding:18px 20px 20px!important;
  }
  #menu.premium-menu-v386 .preview{min-height:465px!important}
  #menu.premium-menu-v386 .games{height:420px!important}
  #menu.premium-menu-v386 .game{min-height:70px!important}
  #menu.premium-menu-v386 .actions button{min-height:68px!important}
}
@media(min-width:1700px) and (min-height:760px){
  #menu.premium-menu-v386{width:min(1380px,calc(100vw - 520px))!important}
  body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header{width:min(1500px,calc(100vw - 360px))!important}
}

/* Ludicera v38.24: use the approved decor image as the real desktop backdrop. */
@media (min-width:1101px){
  body.ludicera-lounge{
    background-color:#f4eadf!important;
    background-image:url('/assets/decor/lounge-background.png?v=3824')!important;
    background-position:center top!important;
    background-size:cover!important;
    background-repeat:no-repeat!important;
    background-attachment:fixed!important;
  }
  /* The photographic/decorative backdrop replaces the earlier CSS-made decorations. */
  .home-decor-layer{display:none!important}
  /* Keep the real interactive UI readable and make sure the image never acts as UI. */
  .ludicera-header,
  #menu.window,
  .lounge-game .game-header,
  .game-help-card,
  .lounge-game .table-scroll{
    position:relative;
    z-index:2;
  }
  .ludicera-header{
    background:linear-gradient(180deg,rgba(255,253,248,.97),rgba(248,241,231,.95))!important;
  }
  #menu.window{
    background:rgba(255,253,246,.97)!important;
  }
}
@media (max-width:1100px){
  body.ludicera-lounge{
    background-image:none!important;
    background:linear-gradient(180deg,#fbf7ef 0%,#f2eadf 58%,#eee4d7 100%)!important;
  }
}


/* Ludicera v38.25 – render the approved lounge artwork as a real fixed image layer.
   This avoids body-background cascade/caching issues and keeps all real UI interactive above it. */
.ludicera-fixed-backdrop{display:none}
@media (min-width:1101px){
  html{background:#f4eadf}
  body.ludicera-lounge{
    background:linear-gradient(180deg,rgba(251,247,239,.30),rgba(238,228,215,.22))!important;
    position:relative;
    isolation:isolate;
  }
  .ludicera-fixed-backdrop{
    display:block;
    position:fixed;
    inset:0;
    width:100vw;
    height:100vh;
    object-fit:cover;
    object-position:center top;
    pointer-events:none;
    user-select:none;
    z-index:0;
  }
  body.ludicera-lounge > .visitor-badge,
  body.ludicera-lounge > .ludicera-header,
  body.ludicera-lounge > main,
  body.ludicera-lounge > section,
  body.ludicera-lounge > dialog{
    position:relative;
    z-index:2;
  }
  /* Do not paint the old CSS decorations on top of the real backdrop. */
  .home-decor-layer{display:none!important}
}
@media (max-width:1100px){
  .ludicera-fixed-backdrop{display:none!important}
}

/* Ludicera – zwei mehrsprachige dekorative Schriften auf der Startseite.
   Positionen beziehen sich auf lounge-background.png (1664 × 936, object-fit: cover, object-position: center top). */
.ludicera-decor-copy-layer{display:none}

@media (min-width:1101px){
  .ludicera-decor-copy-layer{
    display:block;
    position:fixed;
    inset:0;
    z-index:3;
    pointer-events:none;
    user-select:none;
    overflow:hidden;
  }
  .ludicera-decor-copy-layer[hidden]{display:none!important}
  .ludicera-decor-copy{
    position:absolute;
    white-space:pre-line;
    text-align:center;
    font-family:"Segoe Print","Bradley Hand","Brush Script MT",cursive;
    font-style:italic;
    font-weight:500;
    line-height:1.08;
    letter-spacing:.01em;
    text-rendering:geometricPrecision;
  }
  .ludicera-decor-copy--top{
    color:#b37a35;
    width:9.4vw;
    font-size:1.55vw;
    text-shadow:0 1px 0 rgba(255,255,255,.28);
    transform:translateX(-50%) rotate(-7deg);
  }
  .ludicera-decor-copy--book{
    color:#d9a43f;
    width:7.8vw;
    font-size:1.22vw;
    text-shadow:0 1px 1px rgba(64,31,8,.35);
    transform:translateX(-50%) rotate(-4deg);
  }
}

/* Bei breiteren Formaten skaliert das Hintergrundbild nach der Fensterbreite. */
@media (min-width:1101px) and (min-aspect-ratio:16/9){
  .ludicera-decor-copy--top{left:91.95vw;top:8.4vw}
  .ludicera-decor-copy--book{left:3.85vw;top:30.4vw}
}

/* Bei höheren/schmaleren Desktopfenstern skaliert das Hintergrundbild nach der Höhe
   und wird links/rechts mittig beschnitten. */
@media (min-width:1101px) and (max-aspect-ratio:16/9){
  .ludicera-decor-copy--top{
    left:calc(50vw + 74.57vh);
    top:14.93vh;
    width:16.7vh;
    font-size:2.75vh;
  }
  .ludicera-decor-copy--book{
    left:calc(50vw - 81.76vh);
    top:54.04vh;
    width:13.9vh;
    font-size:2.17vh;
  }
}

/* Auf Handy/Tablet bleibt die bestehende kompakte Startseite unverändert. */
@media (max-width:1100px){
  .ludicera-decor-copy-layer{display:none!important}
}

/* v38-33: Above the existing header decoration; book text sits above its gold Joker. */

/* Card ranks are artwork, never selectable browser text. */
.felt, .felt *, .drag-stack, .drag-stack *, .deal-flight, .deal-flight * {
  -webkit-user-select: none !important;
  user-select: none !important;
}
.felt img, .felt svg, .drag-stack img, .drag-stack svg {
  -webkit-user-drag: none;
}

/* Ludicera v38.19 – Aces Up, Australian Patience, Baker's Dozen */
.new-game-table{width:min(1320px,100%)!important;margin:0 auto}
.new-game-table .felt{min-height:570px;grid-template-rows:auto 350px 48px}
.au-top,.ap-top,.bd-top{display:flex;align-items:flex-start;gap:var(--ludicera-card-gap,14px);width:max-content;max-width:100%;margin:0 auto 10px;position:relative;z-index:1}
.ap-top{justify-content:center}.bd-top{justify-content:center}
.ng-foundations{display:grid;grid-template-columns:repeat(4,var(--ludicera-card-width,76px));gap:var(--ludicera-card-gap,14px);width:max-content}
.ng-slot{box-sizing:border-box;width:var(--ludicera-card-width,76px);height:var(--ludicera-card-height,108px);border:1px dashed #ffffff80;border-radius:5px;background:transparent;color:#e6f0dc;display:grid;place-items:center;position:relative;overflow:visible;font-size:14px;padding:0}
.au-top-pile{display:flex;flex-direction:column;align-items:center}.au-discard{place-items:center}.au-discard-empty{font:600 12px Segoe UI,Arial,sans-serif;color:#e6f0dc}.au-discard-badge{position:absolute;right:-7px;top:-7px;min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:#e8c56f;color:#173b2d;border:2px solid #fff8e8;box-shadow:0 2px 6px #0004;display:grid;place-items:center;font:700 12px Segoe UI,Arial,sans-serif;z-index:5}.au-discard>.playing-card{position:absolute!important;inset:0!important;margin:0!important}
#au-columns{grid-template-columns:repeat(4,var(--ludicera-card-width,76px))!important}
#ap-columns{grid-template-columns:repeat(7,var(--ludicera-card-width,76px))!important}
#bd-columns{grid-template-columns:repeat(13,var(--ludicera-card-width,76px))!important}
:is(#au-columns,#ap-columns,#bd-columns){display:grid!important;column-gap:var(--ludicera-card-gap,14px)!important;width:max-content!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important;align-self:start!important}
:is(#au-columns,#ap-columns,#bd-columns)>.column{box-sizing:border-box!important;width:var(--ludicera-card-width,76px)!important;min-width:var(--ludicera-card-width,76px)!important;max-width:var(--ludicera-card-width,76px)!important;position:relative}
:is(#au-columns,#ap-columns,#bd-columns)>.column>.playing-card,.new-game-table .ng-slot>.playing-card{box-sizing:border-box!important;width:var(--ludicera-card-width,76px)!important;min-width:var(--ludicera-card-width,76px)!important;max-width:var(--ludicera-card-width,76px)!important;height:var(--ludicera-card-height,108px)!important;min-height:var(--ludicera-card-height,108px)!important;max-height:var(--ludicera-card-height,108px)!important}
#bd-table .table-scroll{overflow-x:auto}
#bd-table .felt{min-width:max-content;padding-left:26px;padding-right:26px}
#bd-table .bd-top{min-width:100%;justify-content:center}
.new-game-table .column.drop-target,.new-game-table .ng-slot.drop-target{outline:2px solid #d7b967!important;outline-offset:-2px;background:#e8dba013!important}
.new-game-table .new-game-help{line-height:1.55}
@media(max-width:700px),(max-width:1000px) and (max-height:500px){
 .new-game-table .felt{min-height:440px;grid-template-rows:auto 270px 48px}
 .au-top,.ap-top,.bd-top,.ng-foundations{gap:3px}
 #au-columns,#ap-columns,#bd-columns{column-gap:3px!important;margin-left:0!important;margin-right:0!important}
 #bd-table .felt{padding-left:8px;padding-right:8px}
 .new-game-table .ng-slot{width:auto;min-width:0;height:auto;aspect-ratio:39/61;font-size:10px}
}

/* v38.20 – make the three new games use the same felt/top-row layout as the established games. */
@media(min-width:701px) and (min-height:501px){
  /* Keep the top row full-width, but keep its card groups compact instead of centering/stretching them. */
  #au-table .au-top,
  #ap-table .ap-top,
  #bd-table .bd-top{
    display:flex!important;
    align-items:flex-start!important;
    width:100%!important;
    max-width:none!important;
    margin:0 0 32px!important;
    gap:var(--ludicera-card-gap,14px)!important;
  }

  /* Aces Up: stock + removed pile stay together on the left. */
  #au-table .au-top{
    justify-content:flex-start!important;
  }

  /* Australian Patience: stock + waste left, 4 foundations compact on the right. */
  #ap-table .ap-top{
    justify-content:flex-start!important;
  }
  #ap-table #ap-foundations{
    margin-left:auto!important;
  }

  /* Baker's Dozen: the 4 foundations form one compact group on the right. */
  #bd-table .bd-top{
    justify-content:flex-end!important;
  }
  #bd-table #bd-foundations{
    margin-left:auto!important;
  }

  #ap-table #ap-foundations,
  #bd-table #bd-foundations{
    display:grid!important;
    grid-template-columns:repeat(4,var(--ludicera-card-width,76px))!important;
    gap:var(--ludicera-card-gap,14px)!important;
    width:max-content!important;
    max-width:100%!important;
    justify-content:start!important;
    justify-items:center!important;
  }

  /* Top slots/cards use exactly the same physical size as the cards below. */
  #au-table .ng-slot,
  #ap-table .ng-slot,
  #bd-table .ng-slot{
    width:var(--ludicera-card-width,76px)!important;
    min-width:var(--ludicera-card-width,76px)!important;
    max-width:var(--ludicera-card-width,76px)!important;
    height:var(--ludicera-card-height,108px)!important;
    min-height:var(--ludicera-card-height,108px)!important;
    max-height:var(--ludicera-card-height,108px)!important;
  }
}

/* v38.26 – visible Aces Up/Australian top piles */
#au-stock>.playing-card,#ap-stock>.playing-card,#au-discard>.playing-card{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;position:absolute!important;inset:0!important;margin:0!important}
#au-stock,#ap-stock,#au-discard{overflow:visible!important}

/* v38.27 – Aces Up interaction hardening */
#au-columns .au-source{touch-action:none;cursor:grab}
#au-columns .au-source:active{cursor:grabbing}
#au-columns .au-source.chosen{outline:3px solid #f1cb66!important;outline-offset:-3px}
#au-stock:disabled{opacity:.62;cursor:default}

/* Ludicera v38.30 – Double Yukon, Eight Off, Flower Garden */
.extra-game-table{width:min(1320px,100%)!important;margin:0 auto}
.extra-game-table .felt{min-height:610px;grid-template-rows:auto 380px 48px}
.dy-top,.eo-top,.fg-top{display:flex;align-items:flex-start;gap:var(--ludicera-card-gap,14px);width:100%;margin:0 0 28px;position:relative;z-index:1}
.dy-top{justify-content:flex-end}.eo-top,.fg-top{justify-content:space-between}
.x-foundations{display:grid;grid-template-columns:repeat(4,var(--ludicera-card-width,76px));gap:var(--ludicera-card-gap,14px);width:max-content}
#dy-foundations{grid-template-columns:repeat(8,var(--ludicera-card-width,76px))}
#eo-cells{display:grid;grid-template-columns:repeat(8,var(--ludicera-card-width,76px));gap:var(--ludicera-card-gap,14px);width:max-content}
#fg-reserve{display:grid;grid-template-columns:repeat(8,var(--ludicera-card-width,76px));grid-template-rows:repeat(2,var(--ludicera-card-height,108px));gap:var(--ludicera-card-gap,14px);width:max-content}
.x-slot{box-sizing:border-box;width:var(--ludicera-card-width,76px);min-width:var(--ludicera-card-width,76px);max-width:var(--ludicera-card-width,76px);height:var(--ludicera-card-height,108px);min-height:var(--ludicera-card-height,108px);max-height:var(--ludicera-card-height,108px);border:1px dashed #ffffff80;border-radius:5px;background:transparent;color:#e6f0dc;display:grid;place-items:center;position:relative;overflow:visible;font-size:14px;padding:0}
.x-slot>.playing-card{box-sizing:border-box!important;width:100%!important;min-width:100%!important;max-width:100%!important;height:100%!important;min-height:100%!important;max-height:100%!important;position:absolute!important;inset:0!important;margin:0!important}
#dy-columns{grid-template-columns:repeat(10,var(--ludicera-card-width,76px))!important}
#eo-columns{grid-template-columns:repeat(8,var(--ludicera-card-width,76px))!important}
#fg-columns{grid-template-columns:repeat(6,var(--ludicera-card-width,76px))!important}
:is(#dy-columns,#eo-columns,#fg-columns){display:grid!important;column-gap:var(--ludicera-card-gap,14px)!important;width:max-content!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important;align-self:start!important}
:is(#dy-columns,#eo-columns,#fg-columns)>.column{box-sizing:border-box!important;width:var(--ludicera-card-width,76px)!important;min-width:var(--ludicera-card-width,76px)!important;max-width:var(--ludicera-card-width,76px)!important;position:relative}
:is(#dy-columns,#eo-columns,#fg-columns)>.column>.playing-card{box-sizing:border-box!important;width:var(--ludicera-card-width,76px)!important;min-width:var(--ludicera-card-width,76px)!important;max-width:var(--ludicera-card-width,76px)!important;height:var(--ludicera-card-height,108px)!important;min-height:var(--ludicera-card-height,108px)!important;max-height:var(--ludicera-card-height,108px)!important}
.extra-game-table .column.x-target,.extra-game-table .x-slot.x-target{transition:outline-color .1s ease,background-color .1s ease}
.extra-game-table .column.drop-target,.extra-game-table .x-slot.drop-target{outline:2px solid #d7b967!important;outline-offset:-2px;background:#e8dba013!important}
.extra-game-table .x-source{touch-action:none;user-select:none;-webkit-touch-callout:none;cursor:grab}
.extra-game-table .x-source:active{cursor:grabbing}
.extra-game-table .x-source.chosen{outline:3px solid #f1cb66!important;outline-offset:-3px}
.extra-game-table .new-game-help{line-height:1.55}
#dy-table .table-scroll,#eo-table .table-scroll,#fg-table .table-scroll{overflow-x:auto}
#dy-table .felt,#eo-table .felt,#fg-table .felt{min-width:max-content;padding-left:26px;padding-right:26px}
#dy-table .felt{grid-template-rows:auto 430px 48px;min-height:660px}
#fg-table .felt{min-height:730px}
.x-group-label{margin:0 0 6px;font-size:11px;color:#e6f0dc;text-align:left}
@media(max-width:1100px){
 .eo-top,.fg-top{width:max-content;min-width:100%;gap:20px;justify-content:flex-start}
 .eo-top .x-foundations,.fg-top .x-foundations{margin-left:24px}
}
@media(max-width:700px),(max-width:1000px) and (max-height:500px){
 .extra-game-table .felt{min-height:500px;grid-template-rows:auto 300px 48px;padding-left:8px!important;padding-right:8px!important}
 #dy-table .felt{grid-template-rows:auto 340px 48px;min-height:560px}
 #fg-table .felt{min-height:620px}
 .dy-top,.eo-top,.fg-top,.x-foundations,#eo-cells,#fg-reserve{gap:3px}
 .dy-top,.eo-top,.fg-top{margin-bottom:14px;width:max-content;min-width:100%;justify-content:flex-start}
 #dy-foundations{grid-template-columns:repeat(8,var(--ludicera-card-width,54px))}
 #eo-cells{grid-template-columns:repeat(8,var(--ludicera-card-width,54px))}
 #fg-reserve{grid-template-columns:repeat(8,var(--ludicera-card-width,54px));grid-template-rows:repeat(2,var(--ludicera-card-height,77px))}
 #dy-columns,#eo-columns,#fg-columns{column-gap:3px!important;margin-left:0!important;margin-right:0!important}
 .x-slot{font-size:10px}
}

/* Ludicera v38.37 – remaining solitaire games. Additive styles only. */
.more-game-table{width:min(1460px,100%)!important;margin:0 auto}
.more-game-table .felt{min-height:640px;grid-template-rows:auto minmax(360px,1fr) 48px;padding-left:24px;padding-right:24px}
.rg-top{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;width:100%;margin-bottom:24px;position:relative;z-index:3}
.rg-group{display:flex;flex-direction:column;gap:6px}.rg-label{margin:0;color:#e6f0dc;font-size:11px}
.rg-slots{display:grid;grid-auto-flow:column;grid-auto-columns:var(--ludicera-card-width,76px);gap:var(--ludicera-card-gap,14px);width:max-content}
.rg-slot{box-sizing:border-box;width:var(--ludicera-card-width,76px);height:var(--ludicera-card-height,108px);border:1px dashed #ffffff80;border-radius:5px;color:#e6f0dc;display:grid;place-items:center;position:relative;font-size:12px;overflow:visible;background:#ffffff06;padding:0}
.rg-slot>.playing-card{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;margin:0!important}
.rg-stock{cursor:pointer}.rg-stock.back{background:transparent}.rg-stock-count{font-size:10px;line-height:1.2;text-align:center;padding:4px}
.rg-columns{display:grid!important;grid-template-columns:repeat(var(--rg-cols,7),var(--ludicera-card-width,76px))!important;column-gap:var(--ludicera-card-gap,14px)!important;row-gap:16px!important;width:max-content!important;max-width:none!important;margin:0 auto!important;align-self:start!important}
.rg-columns>.column{box-sizing:border-box!important;width:var(--ludicera-card-width,76px)!important;min-width:var(--ludicera-card-width,76px)!important;max-width:var(--ludicera-card-width,76px)!important;position:relative}
.rg-columns>.column>.playing-card{box-sizing:border-box!important;width:var(--ludicera-card-width,76px)!important;min-width:var(--ludicera-card-width,76px)!important;max-width:var(--ludicera-card-width,76px)!important;height:var(--ludicera-card-height,108px)!important;min-height:var(--ludicera-card-height,108px)!important;max-height:var(--ludicera-card-height,108px)!important}
.rg-source{touch-action:none;user-select:none;-webkit-touch-callout:none;cursor:grab}.rg-source:active{cursor:grabbing}.rg-source.chosen{outline:3px solid #f1cb66!important;outline-offset:-3px}.rg-target.drop-target{outline:2px solid #d7b967!important;outline-offset:-2px;background:#e8dba013!important}
.more-game-table .table-scroll{overflow-x:auto}.more-game-table .new-game-help{line-height:1.55}
.rg-pyramid-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:820px;margin:4px auto 22px}.rg-pyramid-row{display:flex;gap:var(--ludicera-card-gap,14px);justify-content:center}.rg-pyramid-card{position:relative;width:var(--ludicera-card-width,76px);height:var(--ludicera-card-height,108px)}.rg-pyramid-card>.playing-card{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important}.rg-pyramid-card.covered{opacity:.78}.rg-pyramid-card.empty{visibility:hidden}
.rg-pair-grid{display:grid;grid-template-columns:repeat(var(--rg-cols,8),var(--ludicera-card-width,76px));gap:var(--ludicera-card-gap,14px);width:max-content;margin:0 auto}.rg-pair-pile{position:relative;width:var(--ludicera-card-width,76px);height:250px}.rg-pair-pile>.playing-card{position:absolute!important;width:100%!important;height:var(--ludicera-card-height,108px)!important;max-width:none!important}
.rg-montana{display:grid;grid-template-columns:repeat(13,var(--ludicera-card-width,76px));gap:8px;width:max-content;margin:10px auto}.rg-montana .rg-slot{background:#ffffff0b}.rg-montana .rg-slot.row-start{box-shadow:inset 3px 0 0 #ffffff38}
.rg-fans{display:grid;grid-template-columns:repeat(9,var(--ludicera-card-width,76px));gap:22px var(--ludicera-card-gap,14px);width:max-content;margin:0 auto}.rg-fan{position:relative;width:var(--ludicera-card-width,76px);height:185px}.rg-fan>.playing-card{position:absolute!important;width:100%!important;height:var(--ludicera-card-height,108px)!important;max-width:none!important}
.rg-terrace{display:flex;gap:4px;width:min-content}.rg-terrace .playing-card{position:relative!important;width:var(--ludicera-card-width,76px)!important;height:var(--ludicera-card-height,108px)!important;max-width:none!important;margin-left:-54px}.rg-terrace .playing-card:first-child{margin-left:0}
.rg-info-chip{border:1px solid #ffffff55;border-radius:999px;color:#f2f4e9;font-size:11px;padding:5px 9px;white-space:nowrap;background:#0002}
@media(max-width:700px),(max-width:1000px) and (max-height:500px){
 .more-game-table .felt{min-height:520px;grid-template-rows:auto minmax(300px,1fr) 48px;padding-left:8px;padding-right:8px}.rg-top{gap:10px;margin-bottom:14px;width:max-content;min-width:100%;justify-content:flex-start}.rg-slots,.rg-columns{gap:3px!important}.rg-columns{column-gap:3px!important;margin-left:0!important;margin-right:0!important}.rg-slot{font-size:9px}.rg-pyramid-wrap{min-width:620px}.rg-pyramid-row{gap:3px}.rg-pair-grid,.rg-fans{gap:8px 3px}.rg-montana{gap:3px}.rg-info-chip{font-size:9px;padding:4px 6px}
}

/* Content-sized boards: pyramid rows and long fans must never be clipped by the shared fixed table grid. */
.more-game-table .felt{display:block!important;height:auto!important;min-width:max-content!important;width:100%;box-sizing:border-box;overflow:visible!important}
.more-game-table .felt>[id$="-board"]{min-height:300px}
.more-game-table .rg-top{width:100%;min-width:max-content}
.more-game-table .rg-pyramid-wrap{min-width:0;width:max-content;gap:0}
.more-game-table .rg-pyramid-row+.rg-pyramid-row{margin-top:calc(var(--ludicera-card-height,108px) * -.60)}
.more-game-table .rg-source:focus-visible{outline:3px solid #f1cb66;outline-offset:-3px}
.more-game-table .rg-stock-count{position:absolute;z-index:2;bottom:2px;right:2px;background:#073d2c;color:white;border-radius:3px;pointer-events:none}

.more-game-table .rg-pyramid-card.covered{opacity:1;filter:brightness(.86)}
@media(max-width:700px){
 .more-game-table{--ludicera-card-width:46px;--ludicera-card-height:66px}
 .more-game-table .rg-top{flex-wrap:wrap;min-width:0}
 .more-game-table .rg-pair-pile{height:210px}
}
@media(max-width:700px){.more-game-table .rg-pyramid-row{gap:2px}}

:root{--table-hue:155;--shared-felt:radial-gradient(ellipse at 48% 2%,hsl(var(--table-hue) 80% 22%),hsl(var(--table-hue) 84% 16%) 52%,hsl(var(--table-hue) 90% 11%))}
/* One smooth surface for every existing game, including later-added tables. */
.table-view .table-scroll{border:2px solid #9b7740;border-radius:24px;padding:6px;background:linear-gradient(145deg,#d9c09a,#9b7740 38%,#76552c 58%,#cfb184);box-shadow:0 18px 44px #3f2f1c2c,0 4px 10px #3f2f1c24,inset 0 1px #f6e6c5}
.table-view .felt{position:relative;border-radius:18px!important;background:var(--shared-felt)!important;background-size:auto!important;border:1px solid #d7c58c2b;box-shadow:inset 0 0 0 1px #d7c58c28,inset 0 4px 22px #00291d80,inset 0 -16px 34px #00291d33}
.table-theme-control{margin:12px 0 18px;display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:10px 16px;align-items:center}
.table-theme-control label{grid-column:1/-1;font-weight:600}
.table-theme-control input{width:100%;min-width:0;accent-color:#99763c}
.table-theme-preview{height:58px;border:4px solid #bfa06a;border-radius:10px;background:var(--shared-felt);box-shadow:inset 0 1px 8px #0004}
@media(max-width:700px){.table-view .table-scroll{padding:3px;border-radius:15px;border-width:1px}.table-view .felt{border-radius:11px!important}}


#ft-table .ft-top{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
#ft-table .ft-top>div:first-child{width:var(--ludicera-card-width,76px);flex-shrink:0}
#ft-table #ft-waste{display:block;flex:1;min-width:140px;max-width:360px;height:var(--ludicera-card-height,108px);aspect-ratio:auto;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
#ft-waste .ft-waste-fan{display:flex;align-items:flex-start;width:max-content;padding-right:2px}
#ft-waste .playing-card{position:relative!important;inset:auto!important;flex:0 0 var(--ludicera-card-width,76px);width:var(--ludicera-card-width,76px)!important;height:calc(var(--ludicera-card-height,108px) - 8px)!important;margin:0!important}
#ft-waste .playing-card+.playing-card{margin-left:calc(18px - var(--ludicera-card-width,76px))!important}
#ft-table #ft-foundations{flex:0 0 auto;grid-template-columns:repeat(8,var(--ludicera-card-width,76px));gap:var(--ludicera-card-gap,9px)}
#ft-table .felt{height:auto!important;min-height:640px;grid-template-rows:auto minmax(350px,1fr) auto!important}
.language-bar{flex-wrap:wrap}
@media(max-width:700px){#ft-table .ft-top{gap:7px}#ft-table #ft-foundations{width:100%;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}#ft-table #ft-waste{max-width:none}.language-bar{max-width:100%;gap:3px}}

html[lang="ru"] #menu.premium-menu-v386 nav:before{content:"🎮  Выбор игры"}

#ft-table #ft-waste{width:auto!important;min-width:140px!important;max-width:360px!important;justify-content:flex-start!important;align-items:flex-start!important;text-align:left;place-content:start!important}
@media(max-width:700px){#ft-table #ft-waste{max-width:calc(100% - 90px)!important}}

#ft-table #ft-waste{display:flex!important;justify-items:start!important;align-content:start!important}#ft-waste .ft-waste-fan{flex-shrink:0}

#ft-table .felt{grid-template-rows:auto minmax(270px,1fr) auto auto!important;height:auto!important}
#ft-table .ft-top{display:flex!important;width:100%;min-width:0}
#ft-table #ft-waste{flex:1 1 0%;width:0!important;min-width:0!important;max-width:none!important;overflow-x:auto!important;overflow-y:hidden!important;contain:paint}
#ft-table #ft-foundations{display:grid!important;width:max-content!important;max-width:100%!important;margin:14px auto 0!important;grid-template-columns:repeat(8,var(--ludicera-card-width,76px))!important;gap:8px!important}
#ft-table #ft-waste .ft-waste-fan{flex:0 0 auto!important;transform:none!important}
#kl-waste,#dk-waste,#ft-waste,#ap-waste,.waste-unmarked{border-color:transparent!important;background:transparent!important;box-shadow:none!important;outline:none!important}
.rg-group:has(.waste-unmarked)>.rg-label{visibility:hidden}
@media(max-width:700px){#ft-table #ft-foundations{width:100%!important;grid-template-columns:repeat(8,minmax(0,1fr))!important;gap:3px!important}}
#ft-table .felt{grid-template-columns:minmax(0,1fr)!important}#ft-table .felt>.ft-top,#ft-table .felt>#ft-columns,#ft-table .felt>#ft-foundations,#ft-table .felt>#ft-status{grid-column:1!important;grid-row:auto!important}

/* One compact header on both the game selection and game pages. */
body.ludicera-lounge .ludicera-header,body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header{width:min(1200px,calc(100% - 32px))!important;max-width:1200px!important;margin:18px auto!important;padding:14px 18px!important;border:1px solid #e2d2bd!important;border-radius:20px!important;min-height:0!important;box-sizing:border-box;transform:none!important}
body.ludicera-lounge .ludicera-header:before,body.ludicera-lounge .ludicera-header:after{display:none!important}
body.ludicera-lounge .ludicera-header :is(h1,.brand-title){font-size:32px!important;line-height:1.1!important}
body.ludicera-lounge .ludicera-header p{font:14px/1.4 Arial,sans-serif!important}
body.ludicera-lounge .ludicera-header .logo,body.ludicera-lounge .ludicera-header .logo img{width:60px!important;height:60px!important}
/* Let the continuous background image show through, without a hard central panel. */
@media(min-width:1101px){body.ludicera-lounge{background:transparent!important}body.ludicera-lounge:before,body.ludicera-lounge:after{display:none!important}.ludicera-decor-copy--book{font-size:1vw!important;width:6.1vw!important;overflow-wrap:anywhere;line-height:1.12}.ludicera-decor-copy--top{font-size:1.35vw!important;width:8.5vw!important;overflow-wrap:anywhere}}
@media(min-width:1101px) and (min-aspect-ratio:16/9){.ludicera-decor-copy--book{left:3.9vw!important;top:31vw!important}}
@media(min-width:1101px) and (max-aspect-ratio:16/9){.ludicera-decor-copy--book{font-size:1.78vh!important;width:10.8vh!important;left:calc(50vw - 81.7vh)!important;top:55vh!important}.ludicera-decor-copy--top{font-size:2.4vh!important;width:15vh!important}}
.player-statistics{width:100%;border-collapse:collapse;font-size:14px}.player-statistics th,.player-statistics td{padding:8px 5px;border-bottom:1px solid #d9d3c7;text-align:left;overflow-wrap:anywhere}
@media(max-width:700px){body.ludicera-lounge .ludicera-header,body.ludicera-lounge:has(#menu:not([hidden])) .ludicera-header{width:calc(100% - 12px)!important;padding:10px!important;margin:8px auto!important}.player-statistics{font-size:12px}}

html[lang="de"] #menu.premium-menu-v386 nav:before{content:"🎮  Spiele auswählen"}
html[lang="en"] #menu.premium-menu-v386 nav:before{content:"🎮  Choose a game"}
html[lang="fr"] #menu.premium-menu-v386 nav:before{content:"🎮  Choisir un jeu"}
html[lang="es"] #menu.premium-menu-v386 nav:before{content:"🎮  Elegir un juego"}
html[lang="it"] #menu.premium-menu-v386 nav:before{content:"🎮  Scegli un gioco"}
html[lang="pt"] #menu.premium-menu-v386 nav:before{content:"🎮  Escolher um jogo"}
html[lang="nl"] #menu.premium-menu-v386 nav:before{content:"🎮  Kies een spel"}
html[lang="ru"] #menu.premium-menu-v386 nav:before{content:"🎮  Выберите игру"}
@media(min-width:1101px){html[lang="ru"] .ludicera-decor-copy--book{font-size:.82vw!important}#menu.premium-menu-v386 .preview-ribbon{font-size:12px}}
@media(min-width:1101px) and (max-aspect-ratio:16/9){html[lang="ru"] .ludicera-decor-copy--book{font-size:1.46vh!important}}
/* Blend both photographic edges into the warm page colour instead of a visible vertical seam. */
@media(min-width:1101px){body.ludicera-lounge{background:linear-gradient(180deg,#fcf7ef,#f2e5d8)!important}.ludicera-fixed-backdrop{mask-image:linear-gradient(to right,#000 0%,#000 7%,transparent 21%,transparent 79%,#000 93%,#000 100%);-webkit-mask-image:linear-gradient(to right,#000 0%,#000 7%,transparent 21%,transparent 79%,#000 93%,#000 100%)}}

/* Larger cards, matching the proportions of the supplied classic reference. */
:root{--ludicera-card-width:84px;--ludicera-card-height:131px}
.playing-card.reference-card{border-color:#252a22!important;border-radius:3px!important}
/* The inner edge of the photograph disappears before the old vertical boundary. */
@media(min-width:1101px){.ludicera-fixed-backdrop{mask-image:linear-gradient(to right,#000 0%,#000 4%,rgba(0,0,0,.9) 6%,rgba(0,0,0,.5) 8%,rgba(0,0,0,.12) 10%,transparent 12%,transparent 79%,#000 93%,#000 100%);-webkit-mask-image:linear-gradient(to right,#000 0%,#000 4%,rgba(0,0,0,.9) 6%,rgba(0,0,0,.5) 8%,rgba(0,0,0,.12) 10%,transparent 12%,transparent 79%,#000 93%,#000 100%)}}
@media(max-width:700px){.more-game-table{--ludicera-card-width:50px;--ludicera-card-height:78px}}
@media(max-width:700px),(max-width:1000px) and (max-height:500px){
 .extra-game-table{--ludicera-card-width:50px;--ludicera-card-height:78px}
 #dy-table .felt,#eo-table .felt,#fg-table .felt{height:auto!important;grid-template-rows:auto minmax(340px,auto) auto!important}
 .eo-top,.fg-top{flex-wrap:wrap;width:100%;min-width:0}.eo-top .x-foundations,.fg-top .x-foundations{margin-left:0}
}
@media(max-width:700px),(max-width:1000px) and (max-height:500px){#eo-table .felt,#fg-table .felt{min-width:437px!important}#dy-table .felt{min-width:543px!important}}

.stats-intro{margin-top:0;color:#5f6b65}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;margin:10px 0 20px}.stats-card{background:#f6f3ea;border:1px solid #ded8ca;border-radius:12px;padding:11px 12px;min-width:0}.stats-card-label{display:block;font-size:12px;color:#68736d;margin-bottom:5px;line-height:1.25}.stats-card strong{display:block;font-size:18px;color:#214e40;line-height:1.15}.player-statistics-wrap{max-width:100%;overflow-x:auto;border:1px solid #ded8ca;border-radius:12px}.player-statistics{width:100%;min-width:690px;border-collapse:collapse;font-size:13px}.player-statistics th,.player-statistics td{padding:8px 9px;border-bottom:1px solid #e2ddd2;text-align:left;white-space:nowrap}.player-statistics th{background:#f6f3ea;color:#45534d;font-weight:650}.player-statistics tbody tr:last-child td{border-bottom:0}.stats-actions{display:flex;justify-content:flex-end;margin-top:16px}.stats-reset{font-size:13px}@media(max-width:700px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.stats-card{padding:9px}.stats-card strong{font-size:16px}.player-statistics{font-size:12px}}

.ludicera-version{font:11px/1.5 Arial,sans-serif;color:#7b8179;text-align:center;position:relative;z-index:1;margin:10px auto 16px;width:100%;}
/* One desktop footprint for card faces, backs, slots and fanned waste cards.
   Specificity also supersedes the older inline Klondike/Forty face rules. */
@media (min-width:701px) and (min-height:501px){
 body :is(#table,#kl-table,#ft-table,.table-view) .felt .playing-card,
 body .drag-stack .playing-card,
 body > .playing-card.deal-flight{
  box-sizing:border-box!important;
  width:var(--ludicera-card-width)!important;
  min-width:var(--ludicera-card-width)!important;
  max-width:var(--ludicera-card-width)!important;
  height:var(--ludicera-card-height)!important;
  min-height:var(--ludicera-card-height)!important;
  max-height:var(--ludicera-card-height)!important;
  flex-shrink:0!important;
 }
 #ft-table #ft-waste{min-height:calc(var(--ludicera-card-height) + 10px)!important}
}
/* Only the alpha of the existing decorative image changes.
   Keep its original box, cover sizing, placement and the page layout. */
@media(min-width:1101px){
 .ludicera-fixed-backdrop{
  -webkit-mask-image:linear-gradient(to right,#000 0%,#000 4%,rgba(0,0,0,.98) 5%,rgba(0,0,0,.90) 6%,rgba(0,0,0,.70) 7%,rgba(0,0,0,.38) 8%,rgba(0,0,0,.10) 9%,transparent 10%,transparent 79%,#000 93%,#000 100%);
  mask-image:linear-gradient(to right,#000 0%,#000 4%,rgba(0,0,0,.98) 5%,rgba(0,0,0,.90) 6%,rgba(0,0,0,.70) 7%,rgba(0,0,0,.38) 8%,rgba(0,0,0,.10) 9%,transparent 10%,transparent 79%,#000 93%,#000 100%);
 }
}

/* Decorative paint only: never participates in page layout or hit testing. */
.ludicera-backdrop-picture{display:contents;pointer-events:none}
body.ludicera-lounge .ludicera-fixed-backdrop{
 display:block!important;position:fixed;inset:0;width:100vw;height:100vh;
 object-fit:cover;object-position:center top;pointer-events:none;user-select:none;
 z-index:-1;mask-image:none!important;-webkit-mask-image:none!important;
}
body.ludicera-lounge{isolation:isolate}
@media(max-width:768px),(max-width:1100px) and (orientation:portrait){
 body.ludicera-lounge .ludicera-fixed-backdrop{object-fit:fill}
}

/* One shared outer width for the home screen, header and every game. */
body.ludicera-lounge{--ludicera-content-width:1280px}
body.ludicera-lounge:has(#menu) > header.ludicera-header:not([hidden]),
body.ludicera-lounge > :is(main#menu,section.table-view){
 width:min(var(--ludicera-content-width),100%)!important;
 max-width:100%!important;
 min-width:0!important;
 margin-left:auto!important;
 margin-right:auto!important;
 box-sizing:border-box;
}
body.ludicera-lounge:has(#menu) > header.ludicera-header:not([hidden]){flex-wrap:wrap;padding-left:18px!important;padding-right:18px!important}
.ludicera-header > *{min-width:0;max-width:100%}
.ludicera-header .language-bar{flex-wrap:wrap}
body.ludicera-lounge .table-head{min-width:0;max-width:100%;flex-wrap:wrap}
body.ludicera-lounge .table-tools{min-width:0;max-width:100%;flex-wrap:wrap}
body.ludicera-lounge .table-tools button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
@media(max-width:700px){body.ludicera-lounge:has(#menu) > header.ludicera-header:not([hidden]){padding-left:10px!important;padding-right:10px!important}}



/* The extra history button grows the right-aligned tools toward the left. */
body.ludicera-lounge .table-tools{gap:6px}
body.ludicera-lounge .table-tools button{padding-left:10px;padding-right:10px}
@media(min-width:1000px){body.ludicera-lounge .table-tools{margin-right:40px;max-width:calc(100% - 40px)}}

a.game{font:inherit;color:inherit;text-decoration:none;cursor:pointer}a.game:focus-visible{outline:3px solid #b69752;outline-offset:3px}
#game-guide{width:100%;max-width:1280px;box-sizing:border-box;margin:24px auto;padding:20px 24px;border:1px solid #ded0bd;border-radius:16px;background:#fffaf1;color:#264c3d;line-height:1.65;overflow-wrap:anywhere}#game-guide :is(h2,:is(h1,.brand-title).game-title){font:600 23px Georgia,serif;margin:0 0 16px}#game-guide h3{font:600 17px Georgia,serif;margin:18px 0 8px}#game-guide p{margin:8px 0}#game-guide li{margin:6px 0}#game-guide a{color:#075b45;text-underline-offset:3px}#game-guide ul{padding-left:22px}@media(max-width:700px){#game-guide{padding:16px;margin:18px auto}#game-guide :is(h2,:is(h1,.brand-title).game-title){font-size:21px}}
#game-guide{position:relative;z-index:4}

/* Shared functional card geometry. Tableau geometry and game rules are untouched. */
:root{--function-card-width:84px;--function-card-height:calc(84px * 61 / 39);--function-gap:8px}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.table-top,.kl-top,.ft-top,.fc-top,.ss-top,.dk-top,.ds-top,.au-top,.ap-top,.bd-top,.dy-top,.eo-top,.fg-top,.rg-top,#ft-foundations,[id$="-board"]>.rg-slots){--ludicera-card-width:var(--function-card-width);--ludicera-card-height:var(--function-card-height);--ludicera-card-gap:var(--function-gap)}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.table-top,.kl-top,.ft-top,.fc-top,.ss-top,.dk-top,.ds-top,.au-top,.ap-top,.bd-top,.dy-top,.eo-top,.fg-top,.rg-top,#ft-foundations,[id$="-board"]>.rg-slots) :is(.foundation,.kl-slot,.ft-slot,.fc-slot,.ss-slot,.dk-slot,.ds-slot,.ng-slot,.x-slot,.rg-slot,.playing-card){box-sizing:border-box!important;width:var(--function-card-width)!important;min-width:var(--function-card-width)!important;max-width:var(--function-card-width)!important;height:var(--function-card-height)!important;min-height:var(--function-card-height)!important;max-height:var(--function-card-height)!important;aspect-ratio:39/61!important;flex:0 0 var(--function-card-width)!important;padding:0!important;margin-top:0!important;margin-bottom:0!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.table-top,.kl-top,.ft-top,.fc-top,.ss-top,.dk-top,.ds-top,.au-top,.ap-top,.bd-top,.dy-top,.eo-top,.fg-top,.rg-top,#ft-foundations,[id$="-board"]>.rg-slots) :is(.foundation,.kl-slot,.ft-slot,.fc-slot,.ss-slot,.dk-slot,.ds-slot,.ng-slot,.x-slot,.rg-slot)>.playing-card{position:absolute!important;top:-1px!important;left:-1px!important;right:auto!important;bottom:auto!important;margin:0!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.table-top,.kl-top,.ft-top,.fc-top,.ss-top,.dk-top,.ds-top,.au-top,.ap-top,.bd-top,.dy-top,.eo-top,.fg-top,.rg-top){display:flex!important;flex-wrap:wrap!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px var(--function-gap)!important;width:100%!important;min-width:0!important;max-width:100%!important;margin:0 0 20px!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.table-top,.kl-top,.ft-top,.fc-top,.ss-top,.dk-top,.ds-top,.au-top,.ap-top,.bd-top,.dy-top,.eo-top,.fg-top,.rg-top)>div{min-width:0!important;max-width:100%!important;flex-shrink:1!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(#foundations,#kl-foundations,#ft-foundations,#fc-cells,#fc-foundations,#ss-foundations,#dk-foundations,#ds-foundations,.ng-foundations,.x-foundations,#eo-cells,#fg-reserve,.rg-slots){display:flex!important;flex-wrap:wrap!important;align-items:flex-start!important;justify-content:flex-start!important;gap:var(--function-gap)!important;grid-column:auto!important;width:max-content!important;min-width:0!important;max-width:100%!important;grid-template-rows:none!important;margin-left:0!important;margin-right:0!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.ss-top,.ds-top,.bd-top,.dy-top){justify-content:flex-end!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.au-top,.ap-top,.kl-top,.dk-top,.ft-top){justify-content:flex-start!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(#ap-foundations,#kl-foundations,#dk-foundations){margin-left:auto!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt .table-top>div:last-child{width:auto!important;max-width:100%!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt #stock{min-height:var(--function-card-height)!important;padding-right:0!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt #stock .playing-card{margin-right:calc(var(--function-card-width) * -.55)!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt #stock .playing-card:last-child{margin-right:0!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt #fg-reserve{max-width:calc(var(--function-card-width) * 8 + var(--function-gap) * 7)!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.table-top,.kl-top,.ft-top,.fc-top,.ss-top,.dk-top,.ds-top,.au-top,.ap-top,.bd-top,.dy-top,.eo-top,.fg-top,.rg-top,#ft-foundations,[id$="-board"]>.rg-slots) #ft-waste{flex:1 1 0%!important;width:0!important;min-width:var(--function-card-width)!important;max-width:none!important;height:calc(var(--function-card-height) + 12px)!important;min-height:calc(var(--function-card-height) + 12px)!important;max-height:calc(var(--function-card-height) + 12px)!important;aspect-ratio:auto!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.table-top,.kl-top,.ft-top,.fc-top,.ss-top,.dk-top,.ds-top,.au-top,.ap-top,.bd-top,.dy-top,.eo-top,.fg-top,.rg-top,#ft-foundations,[id$="-board"]>.rg-slots) #ft-waste .playing-card{position:relative!important;inset:auto!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.table-top,.kl-top,.ft-top,.fc-top,.ss-top,.dk-top,.ds-top,.au-top,.ap-top,.bd-top,.dy-top,.eo-top,.fg-top,.rg-top,#ft-foundations,[id$="-board"]>.rg-slots) #ft-waste .playing-card+.playing-card{margin-left:calc(18px - var(--function-card-width))!important}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt #ft-foundations{margin:14px auto 0!important}
/* Allow an extra functional row to occupy real space rather than cover the tableau. */
html body :is(#table,#kl-table,#ft-table,.table-view) .felt{height:auto!important;grid-template-rows:auto minmax(350px,auto) auto!important;overflow:visible!important}
html body #ft-table .felt{grid-template-rows:auto minmax(350px,auto) auto auto!important}
@media(max-width:1000px){:root{--function-gap:4px}}
@media(max-width:700px),(max-width:1000px) and (max-height:500px){
 :root{--function-card-width:50px;--function-card-height:calc(50px * 61 / 39);--function-gap:4px}
 html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.table-top,.kl-top,.ft-top,.fc-top,.ss-top,.dk-top,.ds-top,.au-top,.ap-top,.bd-top,.dy-top,.eo-top,.fg-top,.rg-top){max-width:calc(100vw - 56px)!important}
 html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(#foundations,#kl-foundations,#ft-foundations,#fc-cells,#fc-foundations,#ss-foundations,#dk-foundations,#ds-foundations,.ng-foundations,.x-foundations,#eo-cells,#fg-reserve,.rg-slots){max-width:100%!important}
 html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.table-top,.kl-top,.ft-top,.fc-top,.ss-top,.dk-top,.ds-top,.au-top,.ap-top,.bd-top,.dy-top,.eo-top,.fg-top,.rg-top,#ft-foundations,[id$="-board"]>.rg-slots) :is(.foundation,.kl-slot,.ft-slot,.fc-slot,.ss-slot,.dk-slot,.ds-slot,.ng-slot,.x-slot,.rg-slot){font-size:10px!important}
 html body :is(#table,#kl-table,#ft-table,.table-view) .felt{grid-template-rows:auto minmax(270px,auto) auto!important}
 html body #ft-table .felt{grid-template-rows:auto minmax(270px,auto) auto auto!important}
}

/* Bound function groups to the visible table, even when a wide tableau scrolls. */
html body :is(#table,#kl-table,#ft-table,.table-view) .table-scroll{container-type:inline-size}
html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.table-top,.kl-top,.ft-top,.fc-top,.ss-top,.dk-top,.ds-top,.au-top,.ap-top,.bd-top,.dy-top,.eo-top,.fg-top,.rg-top,#ft-foundations,[id$="-board"]>.rg-slots){max-width:calc(100cqw - 52px)!important}
@media(max-width:700px),(max-width:1000px) and (max-height:500px){
 html body :is(#table,#kl-table,#ft-table,.table-view) .felt :is(.table-top,.kl-top,.ft-top,.fc-top,.ss-top,.dk-top,.ds-top,.au-top,.ap-top,.bd-top,.dy-top,.eo-top,.fg-top,.rg-top,#ft-foundations,[id$="-board"]>.rg-slots){max-width:calc(100cqw - 16px)!important}
}
