.city-kl-overlay{position:fixed;inset:0;z-index:100000;background:#061015;color:#f4fbff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;overflow:hidden;user-select:none}.city-kl-overlay *{box-sizing:border-box}.city-kl-overlay button,.city-kl-overlay select{font:inherit}.city-kl-stage{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 50% 25%,#23556a 0,#0b2734 37%,#06131c 72%,#03090e 100%)}.city-kl-bg{position:absolute;pointer-events:none;border-radius:50%;filter:blur(70px);opacity:.3}.city-kl-bg-one{width:42vw;height:42vw;left:-12vw;top:-16vw;background:#50dcb9}.city-kl-bg-two{width:42vw;height:42vw;right:-12vw;bottom:-18vw;background:#e9ac3a}.city-kl-topbar{position:absolute;z-index:20;left:14px;right:14px;top:max(10px,env(safe-area-inset-top));height:54px;display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid #ffffff1c;border-radius:18px;background:linear-gradient(180deg,#173746ed,#0b202bec);box-shadow:0 15px 35px #0008,inset 0 1px #ffffff17;backdrop-filter:blur(16px)}.city-kl-topbar>div:first-of-type,.city-kl-title{flex:1;min-width:0}.city-kl-topbar small{display:block;color:#e0ae48;font-size:8px;font-weight:1000;letter-spacing:.16em}.city-kl-topbar b{display:block;font-size:20px;line-height:1}.city-kl-back,.city-kl-menu-button{display:grid;place-items:center;width:39px;height:39px;flex:0 0 39px;border:1px solid #ffffff1c;border-radius:13px;background:#091923;color:#fff;font-size:24px;font-weight:900;box-shadow:inset 0 1px #ffffff17}.city-kl-menu-button{font-size:18px}.city-kl-turn-badge{min-width:105px;text-align:center;padding:5px 12px;border-radius:12px;background:#ffffff0a;border:1px solid #ffffff13}.city-kl-turn-badge b{font-size:13px;color:#70e5bb}.city-kl-start-card{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-48%);width:min(700px,calc(100% - 26px));max-height:calc(100dvh - 95px);overflow:auto;padding:26px;border:1px solid #ffffff20;border-radius:30px;background:linear-gradient(145deg,#173a49f2,#071722f7 70%);box-shadow:0 32px 80px #000a,inset 0 1px #ffffff1a}.city-kl-start-logo{display:flex;align-items:center;justify-content:center;gap:15px;text-align:left}.city-kl-start-logo>span{display:grid;place-items:center;width:78px;height:78px;border-radius:24px;background:linear-gradient(145deg,#61e0bb,#269577);box-shadow:0 15px 30px #0006,inset 0 2px #ffffff5c;font-size:42px}.city-kl-start-logo h1{margin:0;font-size:42px;line-height:.95}.city-kl-start-logo small{color:#e2b14f;font-size:9px;font-weight:1000;letter-spacing:.17em}.city-kl-start-card>p{max-width:610px;margin:16px auto 20px;color:#bad0d9;text-align:center;font-size:13px;line-height:1.55}.city-kl-rule-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.city-kl-rule-preview span{padding:13px 9px;border-radius:17px;background:#ffffff08;border:1px solid #ffffff12;text-align:center}.city-kl-rule-preview i{display:block;font-size:26px;font-style:normal}.city-kl-rule-preview b{display:block;margin-top:6px;font-size:11px}.city-kl-rule-preview small{display:block;margin-top:3px;color:#9cb3bd;font-size:8px;line-height:1.35}.city-kl-start-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:17px 0}.city-kl-start-options label{display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:15px;background:#071923;border:1px solid #ffffff13}.city-kl-start-options span{font-size:9px;font-weight:900;color:#adc3cc}.city-kl-start-options select{flex:1;border:0;outline:0;background:#152f3c;color:#fff;border-radius:10px;padding:8px;font-size:11px;font-weight:800}.city-kl-token-select{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.city-kl-token-select button{padding:10px 7px;border:1px solid #ffffff14;border-radius:15px;background:#ffffff07;color:#d5e4ea;transition:.18s}.city-kl-token-select button.active{border-color:#63e3ba;background:#2fc99a1c;box-shadow:0 0 0 2px #4adbae30}.city-kl-token-select span{display:block;font-size:30px}.city-kl-token-select small{display:block;font-size:8px;font-weight:900}.city-kl-start-actions{display:flex;justify-content:center;gap:9px;margin-top:18px}.city-kl-start-actions button,.city-kl-modal button{border:0;border-radius:14px;padding:12px 18px;font-weight:1000}.city-kl-start-actions .primary,.city-kl-modal .primary{background:linear-gradient(180deg,#ffe47b,#dda12d);color:#312308;box-shadow:0 8px 20px #0005,inset 0 1px #fff3a7}.city-kl-start-actions .secondary,.city-kl-modal .secondary{background:#17313d;color:#e2edf1;border:1px solid #ffffff18}.city-kl-modal .danger{background:linear-gradient(180deg,#f06c64,#b9323a);color:#fff}.city-kl-gamebar{right:14px}.city-kl-players{position:absolute;z-index:15;left:14px;top:78px;width:210px;display:grid;gap:7px}.city-kl-players article{position:relative;display:grid;grid-template-columns:37px 1fr;grid-template-rows:auto auto;align-items:center;gap:0 8px;padding:8px;border:1px solid #ffffff12;border-left:4px solid var(--player);border-radius:14px;background:#071a25dc;box-shadow:0 8px 20px #0005;transition:.2s}.city-kl-players article.active{transform:translateX(5px);background:#102f3d;box-shadow:0 0 0 1px var(--player),0 10px 22px #0007}.city-kl-players article.bankrupt{filter:grayscale(1);opacity:.42}.city-kl-avatar{grid-row:1/3;display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:#ffffff0c;font-size:22px}.city-kl-players b{display:block;font-size:11px}.city-kl-players small{display:block;color:#90aab5;font-size:7px}.city-kl-players strong{grid-column:2;font-size:10px;color:#f4ce68}.city-kl-jailed{position:absolute;right:7px;top:7px;font-style:normal;font-size:12px}.city-kl-board-area{position:absolute;inset:74px 12px 80px 218px;display:grid;place-items:center;perspective:1400px}.city-kl-board{position:relative;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);width:min(74vw,76vh);aspect-ratio:1;padding:7px;gap:2px;border:5px solid #d4ba72;border-radius:22px;background:linear-gradient(145deg,#a8d9bf,#67a68d);box-shadow:0 32px 65px #000a,0 0 0 3px #142e32,inset 0 0 40px #173f3d70;transform:rotateX(4deg)}.city-kl-board:before{content:"";position:absolute;inset:9.8%;border:2px solid #1d5e52;border-radius:12px;background:radial-gradient(circle at 50% 40%,#caeddb,#8fc7aa 75%);box-shadow:inset 0 0 50px #236b5570}.city-kl-tile{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;overflow:hidden;padding:4px 3px;border:1px solid #10282d99;background:linear-gradient(150deg,#f7f3df,#d9d4bd);color:#13222a;text-align:center;box-shadow:inset 0 1px #fff,0 1px 2px #0005;transition:.18s}.city-kl-tile:hover{z-index:8;filter:brightness(1.06);transform:scale(1.05)}.city-kl-tile.hit{z-index:9;animation:cityTileHit .65s ease}.city-kl-tile b{font-size:clamp(5px,.55vw,8px);line-height:1.05;word-break:break-word}.city-kl-tile small{margin-top:3px;font-size:clamp(4px,.45vw,7px);line-height:1;color:#435158}.city-kl-tile-icon{font-size:clamp(14px,1.65vw,25px);line-height:1}.city-kl-colorbar{position:absolute;left:0;right:0;top:0;height:18%;background:var(--tile-group);border-bottom:1px solid #0005}.city-kl-type-street{padding-top:15%}.city-kl-corner{border-radius:7px;background:linear-gradient(150deg,#f2d98e,#c7a853)}.city-kl-corner b{font-size:clamp(7px,.7vw,10px)}.city-kl-owner-dot{position:absolute;z-index:3;right:3px;top:3px;width:9px;height:9px;border-radius:50%;background:var(--owner);border:2px solid #fff;box-shadow:0 1px 3px #000}.city-kl-houses{position:absolute;z-index:4;left:3px;right:3px;bottom:3px;display:flex;justify-content:center;gap:1px}.city-kl-houses i{width:8px;height:7px;background:#2aa666;border:1px solid #0d663d;clip-path:polygon(0 35%,50% 0,100% 35%,100% 100%,0 100%)}.city-kl-center-panel{position:absolute;z-index:3;inset:15%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#153b39;transform:rotate(-18deg)}.city-kl-center-logo small{font-size:8px;font-weight:1000;letter-spacing:.25em;color:#846122}.city-kl-center-logo h1{margin:0;font-size:clamp(27px,4vw,58px);line-height:.85;color:#174f48;text-shadow:0 2px #fff8}.city-kl-center-logo span{display:block;margin-top:4px;font-size:13px;font-weight:1000;letter-spacing:.23em;text-transform:uppercase}.city-kl-last-roll{display:flex;align-items:center;gap:5px;margin:12px 0 7px;transform:rotate(18deg)}.city-kl-last-roll i{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;background:#fff;color:#172129;box-shadow:0 5px 10px #0004;font-size:30px;font-style:normal}.city-kl-last-roll b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#173d3d;color:#fff;font-size:13px}.city-kl-turn-info{max-width:310px;min-height:28px;color:#2c5b57;font-size:10px;font-weight:800;transform:rotate(18deg)}.city-kl-roll-button{display:flex;flex-direction:column;align-items:center;justify-content:center;width:150px;height:56px;margin-top:8px;border:0;border-radius:18px;background:linear-gradient(180deg,#ffdf67,#d9941b);color:#362607;box-shadow:0 8px 16px #244b4280,inset 0 2px #fff5a3;font-weight:1000;transform:rotate(18deg);transition:.15s}.city-kl-roll-button:not(:disabled):active{transform:rotate(18deg) scale(.96)}.city-kl-roll-button:disabled{filter:grayscale(.65);opacity:.55}.city-kl-roll-button span{font-size:14px}.city-kl-roll-button small{font-size:8px}.city-kl-bail-button{margin-top:6px;padding:7px 10px;border:1px solid #8b6022;border-radius:11px;background:#fff4c2;color:#68440b;font-size:8px;font-weight:1000;transform:rotate(18deg)}.city-kl-pot{margin-top:9px;transform:rotate(18deg)}.city-kl-pot small{display:block;font-size:6px;font-weight:1000;letter-spacing:.12em}.city-kl-pot b{font-size:11px;color:#7d5010}.city-kl-tokens-layer{position:absolute;z-index:12;inset:0;pointer-events:none}.city-kl-player-token{position:absolute;display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;background:linear-gradient(145deg,#fff,#dce8ea);border:3px solid var(--player-color);box-shadow:0 5px 9px #0008;transition:left .14s linear,top .14s linear,transform .2s;will-change:left,top}.city-kl-player-token span{font-size:18px}.city-kl-player-token small{display:none}.city-kl-player-token.current{z-index:4;box-shadow:0 0 0 3px #fff7,0 7px 12px #0009}.city-kl-player-token.moving{transform:translateY(-8px) scale(1.12)}.city-kl-player-token.bankrupt{display:none}.city-kl-actions{position:absolute;z-index:20;left:50%;bottom:max(10px,env(safe-area-inset-bottom));display:flex;gap:8px;transform:translateX(-50%)}.city-kl-actions button{display:flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid #ffffff18;border-radius:14px;background:#102936e8;color:#e8f2f5;box-shadow:0 9px 20px #0006}.city-kl-actions span{font-size:18px}.city-kl-actions b{font-size:9px}.city-kl-toast{position:absolute;z-index:100;left:50%;top:76px;min-width:240px;max-width:85%;padding:10px 18px;border:1px solid #ffffff20;border-radius:14px;background:#071923ef;box-shadow:0 15px 35px #0009;text-align:center;opacity:0;pointer-events:none;transform:translate(-50%,-20px);transition:.25s}.city-kl-toast.show{opacity:1;transform:translate(-50%,0)}.city-kl-toast b{display:block;color:#f4ce68;font-size:11px}.city-kl-toast span{display:block;color:#b9ccd4;font-size:8px;margin-top:2px}.city-kl-modal{position:absolute;z-index:200;inset:0;display:grid;place-items:center;padding:18px}.city-kl-modal[hidden]{display:none}.city-kl-modal-backdrop{position:absolute;inset:0;background:#02080dc7;backdrop-filter:blur(7px)}.city-kl-modal section{position:relative;width:min(520px,94vw);max-height:90dvh;overflow:auto;padding:24px;border:1px solid #ffffff1d;border-radius:26px;background:linear-gradient(145deg,#173541,#07141df8);box-shadow:0 30px 70px #000c,inset 0 1px #ffffff17;text-align:center;opacity:0;transform:translateY(16px) scale(.95);transition:.18s}.city-kl-modal.open section{opacity:1;transform:none}.city-kl-modal h2{margin:5px 0 8px;font-size:25px}.city-kl-modal p{margin:8px auto 16px;color:#b5c9d1;font-size:11px;line-height:1.5}.city-kl-kicker{display:block;color:#e3b04b;font-size:8px;font-weight:1000;letter-spacing:.18em}.city-kl-modal-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.city-kl-property-card{overflow:hidden;margin:0 auto 12px;border:1px solid #ffffff1c;border-radius:18px;background:#f1ead4;color:#17232a;box-shadow:0 10px 25px #0006}.city-kl-property-color{height:29px;background:var(--property)}.city-kl-property-card>small{display:block;margin-top:11px;font-size:7px;font-weight:1000;letter-spacing:.16em}.city-kl-property-card h2{margin:3px 10px 7px;color:#17232a}.city-kl-property-card>strong{display:block;margin-bottom:9px;font-size:20px;color:#6f4c12}.city-kl-rent-table{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;padding:0 12px 13px}.city-kl-rent-table span{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;background:#00000009;border-radius:7px}.city-kl-rent-table small{font-size:7px}.city-kl-rent-table b{font-size:8px}.city-kl-card-icon,.city-kl-winner{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 10px;border-radius:22px;background:linear-gradient(145deg,#7559c8,#3d276f);box-shadow:0 10px 24px #0008;font-size:42px;font-weight:1000}.city-kl-winner{background:linear-gradient(145deg,#ffe47b,#c9841b)}.city-kl-owned-list{display:grid;gap:9px;margin:14px 0;max-height:52vh;overflow:auto;text-align:left}.city-kl-owned-card{position:relative;overflow:hidden;padding:12px;border-radius:15px;background:#ffffff08;border:1px solid #ffffff12}.city-kl-owned-card>div:first-child{position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--property)}.city-kl-owned-card h3{margin:0 0 3px 6px;font-size:13px}.city-kl-owned-card p,.city-kl-owned-card small{display:block;margin:0 0 3px 6px;font-size:8px}.city-kl-card-actions{display:flex;gap:6px;margin:8px 0 0 6px}.city-kl-card-actions button{flex:1;padding:8px;font-size:7px}.city-kl-card-actions button:disabled{opacity:.35}.city-kl-empty{padding:20px;border:1px dashed #ffffff22;border-radius:15px}.city-kl-log-list{max-height:50vh;overflow:auto;text-align:left}.city-kl-log-list p{margin:0 0 5px;padding:8px;border-radius:9px;background:#ffffff06;font-size:9px}.city-kl-rules-list{text-align:left}.city-kl-rules-list p{padding:8px 10px;margin:5px 0;border-radius:10px;background:#ffffff06}.city-kl-menu-actions{display:grid;gap:8px}.city-kl-big-icon{display:block;font-size:52px;margin:10px}.city-kl-modal button:disabled{filter:grayscale(1);opacity:.4}.city-kl-modal button{cursor:pointer}.city-kl-modal button.secondary{border:1px solid #ffffff1b}.city-kl-modal .city-kl-menu-actions button{width:100%}@keyframes cityTileHit{50%{filter:brightness(1.35);transform:scale(1.1);box-shadow:0 0 22px #fff}}@media(max-width:900px){.city-kl-players{width:150px}.city-kl-board-area{left:156px}.city-kl-players article{grid-template-columns:31px 1fr;padding:6px}.city-kl-avatar{width:31px;height:31px;font-size:18px}.city-kl-players strong{font-size:8px}.city-kl-board{width:min(82vw,73vh)}}@media(max-width:680px){.city-kl-topbar{left:7px;right:7px;top:max(5px,env(safe-area-inset-top));height:50px}.city-kl-title small{display:none}.city-kl-turn-badge{min-width:82px}.city-kl-players{left:5px;top:62px;width:calc(100% - 10px);grid-template-columns:repeat(4,1fr);gap:3px}.city-kl-players article{display:block;padding:5px 4px 5px 29px;min-height:35px;border-left-width:3px}.city-kl-avatar{position:absolute;left:4px;top:4px;width:25px;height:25px;font-size:15px}.city-kl-players small{display:none}.city-kl-players b{font-size:8px}.city-kl-players strong{font-size:7px}.city-kl-board-area{inset:102px 2px 69px}.city-kl-board{width:min(98vw,69vh);padding:4px;gap:1px;border-width:3px;border-radius:14px;transform:rotateX(2deg)}.city-kl-tile{padding:2px 1px}.city-kl-tile b{font-size:clamp(4px,1.15vw,6px)}.city-kl-tile small{font-size:clamp(3px,.95vw,5px)}.city-kl-owner-dot{width:7px;height:7px;right:1px;top:1px;border-width:1px}.city-kl-houses{bottom:1px}.city-kl-houses i{width:5px;height:5px}.city-kl-player-token{width:25px;height:25px;margin:-12px 0 0 -12px;border-width:2px}.city-kl-player-token span{font-size:13px}.city-kl-center-panel{inset:18%}.city-kl-center-logo h1{font-size:28px}.city-kl-center-logo span{font-size:8px}.city-kl-last-roll{margin:5px 0 2px}.city-kl-last-roll i{width:29px;height:29px;font-size:22px}.city-kl-turn-info{display:none}.city-kl-roll-button{width:116px;height:43px;margin-top:4px;border-radius:13px}.city-kl-roll-button span{font-size:11px}.city-kl-pot{margin-top:4px}.city-kl-actions{bottom:max(5px,env(safe-area-inset-bottom));gap:4px}.city-kl-actions button{padding:7px 8px}.city-kl-actions span{font-size:14px}.city-kl-actions b{font-size:7px}.city-kl-start-card{padding:20px 14px;top:52%;max-height:calc(100dvh - 74px)}.city-kl-start-logo>span{width:58px;height:58px;font-size:31px}.city-kl-start-logo h1{font-size:34px}.city-kl-rule-preview{grid-template-columns:repeat(2,1fr)}.city-kl-start-actions{flex-direction:column}.city-kl-start-actions button{width:100%}}@media(max-height:650px){.city-kl-players{top:58px}.city-kl-board-area{top:93px;bottom:57px}.city-kl-actions{bottom:3px}.city-kl-actions button{padding:5px 8px}.city-kl-board{width:min(90vw,67vh)}.city-kl-center-logo small,.city-kl-center-logo span,.city-kl-pot{display:none}.city-kl-last-roll{margin:2px}.city-kl-roll-button{height:37px}.city-kl-start-card{padding-top:15px;padding-bottom:15px}.city-kl-rule-preview small{display:none}}
.topgames-card.city{background:linear-gradient(145deg,#1b746e,#122439);border-color:#69ddcf55;box-shadow:inset 0 1px rgba(255,255,255,.06)}.topgames-card.city:hover{filter:brightness(1.08)}

/* V106 · separates control rails from the board and adds an in-board 3D dice throw */
@media (min-width:901px){
  .city-kl-players{left:16px;top:82px;width:196px;padding:7px;border:1px solid #ffffff12;border-radius:18px;background:#04111a99;box-shadow:0 16px 36px #0007;backdrop-filter:blur(10px)}
  .city-kl-players article.active{transform:none;box-shadow:0 0 0 1px var(--player),0 9px 20px #0007}
  .city-kl-board-area{inset:74px 132px 18px 230px}
  .city-kl-board{width:min(67vw,77vh)}
  .city-kl-actions{left:auto;right:14px;top:82px;bottom:auto;width:108px;display:grid;gap:8px;transform:none;padding:8px;border:1px solid #ffffff12;border-radius:18px;background:#04111a99;box-shadow:0 16px 36px #0007;backdrop-filter:blur(10px)}
  .city-kl-actions button{width:100%;min-height:62px;justify-content:center;flex-direction:column;padding:8px 6px;text-align:center}
  .city-kl-actions span{font-size:21px}
  .city-kl-actions b{font-size:8px;line-height:1.1}
}

.city-kl-last-roll{display:flex;align-items:center;gap:7px;margin:10px 0 5px;padding:5px 9px;border:1px solid #1d5e5240;border-radius:12px;background:#ffffff45;transform:rotate(18deg)}
.city-kl-last-roll small{color:#2c5b57;font-size:6px;font-weight:1000;letter-spacing:.12em}
.city-kl-last-roll b{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:10px;background:#173d3d;color:#fff;font-size:14px;box-shadow:0 4px 9px #173d3d45}

.city-kl-dice-throw{position:absolute;z-index:80;inset:13%;display:flex;align-items:center;justify-content:center;perspective:900px;pointer-events:none;filter:drop-shadow(0 15px 15px #06111899)}
.city-kl-dice-throw[hidden]{display:none}
.city-kl-dice-throw:before{content:"";position:absolute;left:50%;top:58%;width:170px;height:52px;border-radius:50%;background:radial-gradient(ellipse,#071a2470 0,#071a2425 48%,transparent 72%);transform:translate(-50%,-50%) scale(.35);opacity:0;transition:transform .2s,opacity .2s}
.city-kl-dice-throw.landed:before{opacity:1;transform:translate(-50%,-50%) scale(1)}
.city-kl-dice-cube{position:absolute;width:58px;height:58px;transform-style:preserve-3d;will-change:transform,opacity}
.city-kl-dice-cube.settled{transition:transform .12s ease-out}
.city-kl-dice-face{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:4px;padding:9px;border:1px solid #b8c0c5;border-radius:13px;background:linear-gradient(145deg,#fff,#e4e7e8 72%,#ccd2d5);box-shadow:inset 2px 2px 5px #fff,inset -3px -3px 7px #aeb6bb,0 0 0 1px #ffffff80;backface-visibility:hidden}
.city-kl-dice-face i{display:block;width:8px;height:8px;align-self:center;justify-self:center;border-radius:50%;background:transparent;box-shadow:none}
.city-kl-dice-face i.active{background:#172129;box-shadow:inset 1px 1px 2px #0009,0 1px #fff8}
.city-kl-dice-face.front{transform:translateZ(29px)}
.city-kl-dice-face.back{transform:rotateY(180deg) translateZ(29px)}
.city-kl-dice-face.right{transform:rotateY(90deg) translateZ(29px)}
.city-kl-dice-face.left{transform:rotateY(-90deg) translateZ(29px)}
.city-kl-dice-face.top{transform:rotateX(90deg) translateZ(29px)}
.city-kl-dice-face.bottom{transform:rotateX(-90deg) translateZ(29px)}
.city-kl-dice-total{position:absolute;left:50%;top:72%;display:grid;place-items:center;min-width:54px;height:38px;padding:0 12px;border:2px solid #ffffffaa;border-radius:19px;background:linear-gradient(180deg,var(--throw-color,#72e5bd),#123d38);color:#fff;box-shadow:0 9px 22px #0008,0 0 22px color-mix(in srgb,var(--throw-color,#72e5bd) 52%,transparent);font-size:20px;font-weight:1000;opacity:0;transform:translate(-50%,12px) scale(.7);transition:.22s}
.city-kl-dice-throw.landed .city-kl-dice-total{opacity:1;transform:translate(-50%,0) scale(1)}
.city-kl-dice-throw.leaving{opacity:0;transform:scale(.88);transition:opacity .24s,transform .24s}
.city-kl-dice-throw.landed .city-kl-dice-cube{animation:cityDiceSettle .3s ease-out}

@keyframes cityDiceSettle{0%{filter:brightness(1.3)}45%{filter:brightness(1);margin-top:-5px}100%{margin-top:0}}

@media(max-width:900px) and (min-width:681px){
  .city-kl-players{width:142px}
  .city-kl-board-area{left:158px;right:106px}
  .city-kl-actions{left:auto;right:7px;top:82px;bottom:auto;width:92px;display:grid;transform:none}
  .city-kl-actions button{justify-content:center;padding:8px 5px}
  .city-kl-actions b{font-size:7px}
}

@media(max-width:680px){
  .city-kl-board-area{inset:104px 3px 80px}
  .city-kl-actions{bottom:max(6px,env(safe-area-inset-bottom));padding:4px 6px;border:1px solid #ffffff12;border-radius:14px;background:#04111ad9;box-shadow:0 10px 24px #0007}
  .city-kl-actions button{min-width:0}
  .city-kl-dice-throw{inset:18% 13%;perspective:700px}
  .city-kl-dice-cube{width:43px;height:43px}
  .city-kl-dice-face{padding:7px;gap:3px;border-radius:10px}
  .city-kl-dice-face i{width:6px;height:6px}
  .city-kl-dice-face.front{transform:translateZ(21.5px)}
  .city-kl-dice-face.back{transform:rotateY(180deg) translateZ(21.5px)}
  .city-kl-dice-face.right{transform:rotateY(90deg) translateZ(21.5px)}
  .city-kl-dice-face.left{transform:rotateY(-90deg) translateZ(21.5px)}
  .city-kl-dice-face.top{transform:rotateX(90deg) translateZ(21.5px)}
  .city-kl-dice-face.bottom{transform:rotateX(-90deg) translateZ(21.5px)}
  .city-kl-dice-total{top:76%;height:31px;min-width:44px;font-size:16px}
  .city-kl-last-roll{margin:4px 0 2px;padding:3px 6px}
  .city-kl-last-roll small{display:none}
  .city-kl-last-roll b{height:26px;min-width:27px;font-size:12px}
}


/* V107 · large physical-looking 3D dice with the real rolled values */
.city-kl-last-roll{transform:none;background:#f5efe0;border-color:#73572a2e;box-shadow:0 5px 13px #16221c2b}
.city-kl-last-roll small{color:#73572a}
.city-kl-last-roll b{background:linear-gradient(145deg,#283f3d,#112724);min-width:36px}
.city-kl-dice-throw{inset:7%;perspective:1200px;transform-style:preserve-3d;filter:drop-shadow(0 22px 18px #031016b8)}
.city-kl-dice-throw:before{top:61%;width:235px;height:70px;background:radial-gradient(ellipse,#06151d9c 0,#06151d3f 47%,transparent 74%)}
.city-kl-dice-cube{width:76px;height:76px;transform-style:preserve-3d;will-change:transform,opacity;filter:saturate(.9)}
.city-kl-dice-cube.settled{transition:transform .14s ease-out;filter:drop-shadow(0 8px 6px #0711167d)}
.city-kl-dice-face{gap:6px;padding:12px;border:2px solid #aeb5b9;border-radius:17px;background:linear-gradient(145deg,#fff 0,#f5f5f2 36%,#d8dcde 78%,#c4cace 100%);box-shadow:inset 4px 4px 8px #fff,inset -5px -5px 10px #a7afb4,0 0 0 1px #ffffffbf;backface-visibility:hidden}
.city-kl-dice-face:after{content:"";position:absolute;inset:5px;border-radius:12px;border:1px solid #ffffff9c;pointer-events:none}
.city-kl-dice-face i{width:11px;height:11px}
.city-kl-dice-face i.active{background:radial-gradient(circle at 35% 30%,#38444b 0,#11191e 48%,#020506 100%);box-shadow:inset 2px 2px 3px #000b,0 1px 1px #fff9}
.city-kl-dice-face.front{transform:translateZ(38px)}
.city-kl-dice-face.back{transform:rotateY(180deg) translateZ(38px)}
.city-kl-dice-face.right{transform:rotateY(90deg) translateZ(38px)}
.city-kl-dice-face.left{transform:rotateY(-90deg) translateZ(38px)}
.city-kl-dice-face.top{transform:rotateX(90deg) translateZ(38px)}
.city-kl-dice-face.bottom{transform:rotateX(-90deg) translateZ(38px)}
.city-kl-dice-total{top:77%;height:auto;min-height:46px;min-width:150px;display:flex;flex-direction:column;gap:1px;padding:6px 16px;border-radius:16px;line-height:1.05;text-align:center}
.city-kl-dice-total small{font-size:7px;font-weight:1000;letter-spacing:.11em;text-transform:uppercase;color:#eafff7}
.city-kl-dice-total b{font-size:17px}
.city-kl-dice-throw.throwing .city-kl-dice-total{opacity:0}
.city-kl-dice-throw.landed .city-kl-dice-cube{animation:cityDiceLandV107 .38s cubic-bezier(.2,.9,.25,1)}
@keyframes cityDiceLandV107{0%{margin-top:-14px;filter:brightness(1.25)}45%{margin-top:5px}72%{margin-top:-3px}100%{margin-top:0;filter:brightness(1)}}
@media(max-width:680px){
  .city-kl-dice-throw{inset:11% 7%;perspective:850px}
  .city-kl-dice-cube{width:58px;height:58px}
  .city-kl-dice-face{padding:9px;gap:4px;border-radius:13px}
  .city-kl-dice-face i{width:8px;height:8px}
  .city-kl-dice-face.front{transform:translateZ(29px)}
  .city-kl-dice-face.back{transform:rotateY(180deg) translateZ(29px)}
  .city-kl-dice-face.right{transform:rotateY(90deg) translateZ(29px)}
  .city-kl-dice-face.left{transform:rotateY(-90deg) translateZ(29px)}
  .city-kl-dice-face.top{transform:rotateX(90deg) translateZ(29px)}
  .city-kl-dice-face.bottom{transform:rotateX(-90deg) translateZ(29px)}
  .city-kl-dice-total{top:79%;min-width:130px;min-height:40px;padding:5px 11px}
  .city-kl-dice-total b{font-size:14px}
}

/* V110 · echte WebGL-Würfel direkt auf dem Brett */
.city-kl-dice-throw.city-kl-dice-webgl{
  inset:10% 14% 13%;
  display:grid;
  place-items:center;
  perspective:none;
  filter:none;
}
.city-kl-dice-throw.city-kl-dice-webgl::before{display:none!important}
.city-kl-dice-canvas{
  display:block;
  width:100%;
  height:100%;
  max-width:560px;
  max-height:420px;
  pointer-events:none;
  background:transparent;
  filter:drop-shadow(0 19px 17px rgba(2,11,17,.42));
}
.city-kl-dice-webgl .city-kl-dice-total{
  top:auto;
  bottom:4%;
  height:auto;
  min-height:44px;
  padding:7px 16px;
  line-height:1.1;
}
.city-kl-dice-webgl .city-kl-dice-total small{display:block;font-size:8px;letter-spacing:.08em;opacity:.8}
.city-kl-dice-webgl .city-kl-dice-total b{display:block;margin-top:2px;font-size:17px}
@media(max-width:680px){
  .city-kl-dice-throw.city-kl-dice-webgl{inset:16% 8% 15%}
  .city-kl-dice-webgl .city-kl-dice-total{bottom:0;min-height:39px;padding:6px 12px}
  .city-kl-dice-webgl .city-kl-dice-total b{font-size:14px}
}
\n/* V191 · Mobile Cutout Safe Area */\n.city-kl-overlay{padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.city-kl-topbar{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right))}.city-kl-back,.city-kl-menu-button{min-width:42px;min-height:42px}@media(max-width:760px){.city-kl-start-card{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 78px)}}\n