/* SUDOMI CORE 0.1.2 — layout retained from Core 0.1.1 */
:root{--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--blue:#0b3d91;--blue2:#1976d2;--red:#d62027;--white:#fff;--ink:#10213b;--muted:#6b7890;--line:#d9e1ee;--soft:#eef4ff;--cell:#fff;--given:#14233b;--user:#198754;--bad:#d62027;--note:#51647f;--shadow:0 12px 32px rgba(10,39,82,.12)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(145deg,#f7fbff,#edf3fb);color:var(--ink)}button,select{font:inherit}button{cursor:pointer}body{overscroll-behavior:none}.topbar{padding:max(12px,calc(var(--sat) + 8px)) 14px 10px;display:flex;justify-content:space-between;gap:12px;align-items:center;background:linear-gradient(110deg,var(--blue),#1554b9 62%,var(--red));color:#fff;box-shadow:var(--shadow)}.brand{font-weight:900;font-size:23px;letter-spacing:2px}.tag{font-size:10px;opacity:.9}.top-actions{display:flex;gap:6px;align-items:center}.top-actions select{border:0;border-radius:10px;padding:8px 6px;color:var(--ink);max-width:105px}.icon-btn{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.14);color:#fff;border-radius:10px;width:38px;height:38px;font-size:18px}.icon-btn:disabled{opacity:.35;cursor:not-allowed}main{max-width:680px;margin:auto;padding:10px 10px 24px}.statsbar{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:10px}.statsbar>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:7px;text-align:center;box-shadow:0 4px 14px rgba(10,39,82,.05)}small{display:block;font-size:9px;color:var(--muted);font-weight:800;letter-spacing:.5px}strong{display:block;margin-top:2px;font-size:14px}.game-shell{position:relative;background:#fff;border-radius:15px;padding:5px;box-shadow:var(--shadow);border:1px solid #cfd9e7}.board{width:min(92vw,640px);aspect-ratio:1;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));margin:auto;border:2px solid var(--ink);background:var(--ink);gap:1px}.cell{position:relative;min-width:0;border:0;background:var(--cell);display:flex;align-items:center;justify-content:center;font-size:clamp(21px,6vw,39px);font-weight:700;color:var(--user);padding:0;touch-action:manipulation}.cell.given{color:var(--given)}.cell.selected{background:#bfe0ff}.cell.related{background:#f0f7ff}.cell.same{color:#0054d6;background:#dcecff}.cell.wrong{color:var(--bad);animation:shake .18s linear}.cell:nth-child(3n){border-right:2px solid var(--ink)}.cell:nth-child(9n){border-right:0}.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--ink)}.notes{position:absolute;inset:5%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);font-size:clamp(7px,1.9vw,12px);font-weight:800;color:var(--note);line-height:1}.note{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}.note.on{color:#125ac7}.note.match{color:#0b3d91;background:#d7eaff;border-radius:3px}.selection-info{display:flex;justify-content:space-between;min-height:30px;padding:8px 3px 4px;color:var(--muted);font-size:12px;font-weight:700}.keypad{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:2px}.num-btn,.erase-key{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:11px;min-height:48px;font-size:20px;font-weight:800;box-shadow:0 4px 12px rgba(10,39,82,.06)}.num-btn small{font-size:8px;margin-top:0}.num-btn.exhausted{background:#dce2ea;color:#8994a5;cursor:not-allowed}.erase-key{font-size:18px}.mode-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-top:7px}.tool{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:11px;min-height:42px;font-weight:800}.tool.active{background:#e5f1ff;color:#0758c9;border-color:#a9cdf7}.help{margin-top:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:12px;color:var(--muted)}.help summary{font-weight:800;color:var(--ink)}.pause-overlay{position:absolute;inset:0;background:rgba(10,30,60,.72);z-index:5;border-radius:13px;display:flex;align-items:center;justify-content:center;color:#fff;text-align:center}.pause-title{font-size:34px;font-weight:900;margin-bottom:15px}.primary{border:0;background:#fff;color:var(--blue);padding:12px 22px;border-radius:12px;font-weight:900}.hidden{display:none!important}.modal{position:fixed;inset:0;background:rgba(5,18,36,.72);display:flex;align-items:center;justify-content:center;padding:18px;z-index:20}.modal-card{width:min(440px,100%);background:#fff;border-radius:22px;padding:26px;text-align:center;box-shadow:0 20px 70px rgba(0,0,0,.25)}.modal-card h2{margin:0 0 8px;font-size:30px}.modal-card p{color:var(--muted);margin:6px}.modal-actions{display:grid;gap:8px;margin-top:18px}.modal-actions button{border:0;border-radius:12px;padding:12px;font-weight:800}.modal-actions .primary-action{background:var(--blue);color:#fff}.modal-actions .secondary-action{background:#edf3fb;color:var(--ink)}@keyframes shake{0%,100%{transform:translateX(0)}35%{transform:translateX(-4px)}70%{transform:translateX(4px)}}@media(max-width:520px){.topbar{align-items:flex-start}.brand{font-size:20px}.tag{font-size:9px}.top-actions select{font-size:11px;max-width:83px}.icon-btn{width:32px;height:32px;font-size:15px}.board{width:calc(100vw - 20px)}.num-btn,.erase-key{min-height:44px}.statsbar strong{font-size:12px}}@media(min-width:900px){body{min-height:100vh}.game-shell{padding:8px}.board{width:600px}}
/* 0.1.6 surgical fixes */
.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.cell.box-right{border-right:2px solid var(--ink)}
.cell.grid-right{border-right:0}
.cell.box-bottom{border-bottom:2px solid var(--ink)}
.cell.grid-bottom{border-bottom:0}
.cell.selected{background:#bfe0ff!important}
.cell.same{color:#0054d6!important;background:#dcecff}
.cell.selected.same{background:#bfe0ff!important;color:#0054d6!important}
.cell.given{color:var(--given)}
.cell.given.selected{color:var(--given);background:#bfe0ff!important}
.cell.wrong{color:var(--bad)!important}
/* 0.2.15: a wrong number stays red even while its own cell is selected */
.cell.selected.wrong{color:var(--bad)!important}

/* SUDOMI 0.2.0 home screen */
body{min-height:100vh}
.home-screen{--home-ink:#10213b;min-height:100vh;padding:32px 18px 18px;display:flex;flex-direction:column;align-items:center;background:radial-gradient(ellipse at 50% 0%,#fff 0%,#f3f7fd 55%,#e8eff9 100%);color:var(--home-ink);position:relative;overflow:hidden}
.home-screen:before{content:"";position:absolute;inset:0 0 auto;height:7px;background:linear-gradient(90deg,#0b3d91 0 33.33%,#fff 33.33% 66.66%,#d62027 66.66%)}
.home-brand{text-align:center;margin:0 auto 23px;position:relative}
.flag-mark{width:34px;height:34px;margin:0 auto 8px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:3px;transform:rotate(-3deg)}
.flag-mark span{border-radius:3px}.flag-mark span:nth-child(1){background:#0b3d91}.flag-mark span:nth-child(2){background:#d62027}.flag-mark span:nth-child(3){background:#d62027}.flag-mark span:nth-child(4){background:#0b3d91}
.home-kicker{margin:0 0 4px;color:#52647d;font-size:10px;font-weight:900;letter-spacing:2px}
.home-brand h1{margin:0;color:#0b3d91;font-size:clamp(44px,9vw,70px);font-weight:1000;letter-spacing:7px;line-height:1.04;text-shadow:0 3px 0 #d6202722}
.home-tagline{margin:7px 0 0;font-size:clamp(16px,3vw,20px);font-weight:800}
.home-motto{margin:3px 0 0;color:#66758a;font-size:13px;font-style:italic}
.home-menu{width:min(760px,100%);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;position:relative}
.home-option{min-width:0;min-height:67px;display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid #d5deeb;border-radius:15px;background:rgba(255,255,255,.92);color:var(--home-ink);text-align:left;box-shadow:0 5px 16px rgba(10,39,82,.055);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}
.home-option:hover{transform:translateY(-2px);border-color:#aebfd7;box-shadow:0 9px 22px rgba(10,39,82,.10)}
.home-option:focus-visible{outline:3px solid #1976d2;outline-offset:2px}
.play-option{grid-column:1/-1;min-height:76px;color:#fff;border:0;background:linear-gradient(110deg,#0b3d91,#1554b9 66%,#d62027);box-shadow:0 9px 22px rgba(11,61,145,.2)}
.play-option:hover{border:0;box-shadow:0 12px 27px rgba(11,61,145,.28)}
.option-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;background:#eef4ff;font-size:21px}
.play-option .option-icon{background:#ffffff24}
.option-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}
.option-copy strong{margin:0;font-size:14px;line-height:1.2}
.option-copy small{color:#718096;font-size:10px;font-weight:600;letter-spacing:0}
.play-option .option-copy small{color:#e5edff}
.dev-badge{flex:0 0 auto;padding:5px 7px;border-radius:8px;background:#f0f3f7;color:#65738a;font-size:9px;font-weight:800;white-space:nowrap}
.option-arrow{font-size:28px;font-weight:400;line-height:1;opacity:.9}
.home-footer{width:min(760px,100%);display:flex;justify-content:space-between;gap:12px;margin:auto auto 0;padding:18px 2px 0;color:#77859a;font-size:10px;font-weight:700}
.game-screen{min-height:100vh}
@media(max-width:620px){.home-screen{padding:25px 13px 12px}.home-brand{margin-bottom:17px}.home-menu{grid-template-columns:1fr;gap:7px}.home-option{min-height:59px;padding:8px 10px}.play-option{min-height:67px}.option-icon{width:35px;height:35px;flex-basis:35px}.option-copy strong{font-size:13px}.option-copy small{font-size:9px}.dev-badge{font-size:8px;padding:5px 6px}.home-footer{font-size:9px;padding-top:13px}}
@media(max-width:370px){.dev-badge{max-width:89px;white-space:normal;text-align:center}.home-screen{padding-inline:10px}}

/* SUDOMI 0.2.1 home and difficulty selection refinement */
.home-screen{display:block;min-height:100svh;padding:0;overflow-x:hidden;overflow-y:auto;background:radial-gradient(ellipse at 78% 8%,#fff 0,#f6f8fc 43%,#eaf0f8 100%)}
.home-screen:before{height:6px;z-index:2}
.home-layout{width:min(1100px,100%);min-height:100svh;margin:auto;padding:20px 30px 16px;display:flex;flex-direction:column}
.home-topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}
.home-logo{display:inline-flex;align-items:center;gap:11px;color:#10213b;text-decoration:none}
.logo-sudoku{width:48px;height:48px;flex:0 0 48px;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:1px;padding:2px;border:2px solid #fff;border-radius:8px;background:#fff;box-shadow:0 2px 10px #08265024;overflow:hidden}
.logo-sudoku i{display:grid;place-items:center;background:#edf3fb;color:#0b3d91;font-size:10px;font-style:normal;font-weight:900;line-height:1}
.logo-sudoku i:nth-child(4n+1),.logo-sudoku i:nth-child(4n+4){color:#d62027}
.logo-sudoku i:nth-child(4n+2){border-right:1px solid #7386a0}
.logo-sudoku i:nth-child(n+5):nth-child(-n+8){border-bottom:1px solid #7386a0}
.logo-word{display:flex;flex-direction:column;gap:1px}
.logo-word strong{margin:0;color:#0b3d91;font-size:24px;font-weight:1000;letter-spacing:3px;line-height:1}
.logo-word small{color:#68788e;font-size:10px;font-weight:650;letter-spacing:0}
.dom-chip{display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid #dfe5ef;border-radius:999px;background:#ffffffb8;color:#5b6c82;font-size:11px;font-weight:800}
.dom-chip span{font-size:16px}
.home-main{width:100%;max-width:none;margin:0;padding:0;flex:1}
.welcome-hero{min-height:286px;position:relative;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;overflow:hidden;padding:34px 48px;border:1px solid #dbe3ef;border-radius:28px;background:linear-gradient(115deg,#fff 0%,#f9fbff 53%,#e9f0fc 100%);box-shadow:0 16px 44px #183b6713}
.welcome-hero:after{content:"";position:absolute;right:0;top:0;width:6px;height:100%;background:linear-gradient(#0b3d91 0 40%,#fff 40% 63%,#d62027 63%)}
.hero-copy{position:relative;z-index:1;max-width:500px}
.home-kicker{display:flex;align-items:center;gap:8px;margin:0 0 15px;color:#62738c;font-size:10px;font-weight:900;letter-spacing:1.5px}
.home-kicker span{width:8px;height:8px;border-radius:50%;background:#d62027;box-shadow:0 0 0 4px #d6202718}
.welcome-hero h1{margin:0;color:#10213b;font-size:clamp(34px,5vw,54px);font-weight:900;line-height:1.02;letter-spacing:-1.7px}
.welcome-hero h1 em{color:#0b3d91;font-style:normal}
.hero-description{max-width:390px;margin:13px 0 20px;color:#6c7a8e;font-size:14px;line-height:1.55}
.play-button{width:min(320px,100%);min-height:63px;display:flex;align-items:center;gap:13px;padding:10px 16px;border:0;border-radius:16px;background:linear-gradient(105deg,#0b3d91,#1554b9 72%,#c52232);color:#fff;text-align:left;box-shadow:0 10px 22px #0b3d9133;transition:transform .16s ease,box-shadow .16s ease}
.play-button:hover{transform:translateY(-2px);box-shadow:0 14px 26px #0b3d9140}
.play-button:focus-visible{outline:3px solid #1976d2;outline-offset:3px}
.play-icon{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:11px;background:#ffffff24;font-size:14px}
.play-button>span:nth-child(2){display:flex;flex:1;flex-direction:column;gap:2px}
.play-button strong{margin:0;font-size:16px;line-height:1.1}
.play-button small{color:#e1eaff;font-size:10px;font-weight:650;letter-spacing:.2px}
.play-chevron{font-size:29px;line-height:1}
.hero-art{min-height:230px;position:relative;display:grid;place-items:center}
.art-glow{position:absolute;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,#d8e6ff 0%,#d8e6ff70 45%,transparent 72%)}
.hero-sudoku{width:min(205px,65vw);aspect-ratio:1;position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:3px;padding:7px;border:3px solid #fff;border-radius:19px;background:#fff;box-shadow:0 15px 38px #183b6730;transform:rotate(5deg)}
.hero-sudoku span{display:grid;place-items:center;border-radius:5px;background:#f1f5fb;color:#0b3d91;font-size:clamp(19px,3vw,28px);font-weight:850}
.hero-sudoku span:nth-child(4n+1),.hero-sudoku span:nth-child(4n+4){color:#c82736}
.hero-sudoku span:nth-child(4n+2){border-right:2px solid #9cacc1}
.hero-sudoku span:nth-child(n+5):nth-child(-n+8){border-bottom:2px solid #9cacc1}
.floating-number{position:absolute;z-index:2;width:36px;height:36px;display:grid;place-items:center;border:1px solid #fff;border-radius:12px;background:#fff;color:#0b3d91;font-weight:900;box-shadow:0 7px 20px #183b6724}
.n-one{top:26px;right:18%}.n-two{bottom:19px;left:20%;color:#c82736}.floating-star{position:absolute;top:18%;left:19%;color:#d62027;font-size:23px}
.hero-stripe{display:none}
.explore-section{margin:25px 2px 18px}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:0 0 12px}
.section-eyebrow{margin:0 0 4px;color:#9aa6b6;font-size:9px;font-weight:900;letter-spacing:1.7px}
.section-heading h2{margin:0;color:#162944;font-size:21px;font-weight:900;letter-spacing:-.4px}
.section-note{padding-bottom:3px;color:#8491a4;font-size:10px;font-weight:600}
.home-menu{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;position:relative}
.home-option{min-height:70px;gap:9px;padding:9px 10px;border:1px solid #dfe5ee;border-radius:15px;background:#ffffffd9;box-shadow:0 4px 13px #183b6709}
.home-option:hover{transform:translateY(-2px);border-color:#c2cede;background:#fff;box-shadow:0 8px 18px #183b6715}
.option-icon{width:36px;height:36px;flex-basis:36px;border-radius:11px;background:#f0f4fa;font-size:18px}
.daily-icon,.stats-icon{background:#edf4ff}.battle-icon,.teacher-icon{background:#fff0f1}.brain-icon,.trophy-icon{background:#fff8e7}.profile-icon,.style-icon,.settings-icon{background:#f2efff}
.option-copy strong{font-size:12px}.option-copy small{font-size:9px;line-height:1.2}
.dev-badge{max-width:84px;padding:5px 6px;background:#f3f5f8;color:#8490a0;font-size:8px;text-align:center;white-space:nowrap}
.dev-badge:before{content:"🚧 "}
.home-footer{width:100%;margin:0;padding:13px 2px 0;border-top:1px solid #dfe5ee;color:#8390a2;font-size:9px}
.home-footer>span:first-child{display:flex;align-items:center;gap:6px}
.game-brand{display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;color:#fff;text-align:left}
.game-brand:focus-visible{outline:2px solid #fff;outline-offset:4px;border-radius:7px}
.game-brand .logo-sudoku{width:40px;height:40px;flex-basis:40px;padding:2px;border-color:#ffffff8c;border-radius:7px;background:#fff;box-shadow:none}
.game-brand .logo-sudoku i{font-size:8px}
.game-brand-copy{display:flex;flex-direction:column;gap:3px}
.game-brand-copy strong{margin:0;color:#fff;font-size:19px;font-weight:950;letter-spacing:2px;line-height:1}
.game-brand-copy small{color:#ffffffd9;font-size:9px;font-weight:600;letter-spacing:0}
.difficulty-dialog{position:relative;width:min(520px,100%);padding:29px 25px 21px;text-align:left}
.picker-close{position:absolute;top:12px;right:14px;width:32px;height:32px;border:0;border-radius:10px;background:#eff3f8;color:#63738a;font-size:23px;line-height:1}
.picker-kicker{margin:0 0 6px!important;color:#d62027!important;font-size:9px;font-weight:900;letter-spacing:1.5px}
.difficulty-dialog h2{margin:0!important;color:#10213b;font-size:26px!important;text-align:left}
.picker-description{margin:7px 0 17px!important;color:#738198!important;font-size:12px;line-height:1.45}
.difficulty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.difficulty-choice{min-width:0;min-height:65px;display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid #dce4ef;border-radius:13px;background:#fff;color:#10213b;text-align:left;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}
.difficulty-choice:hover{transform:translateY(-1px);border-color:#9eb7da;box-shadow:0 6px 14px #12376313}
.difficulty-choice:focus-visible{outline:3px solid #1976d2;outline-offset:2px}
.difficulty-number{width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;border-radius:9px;background:#edf3fb;color:#0b3d91;font-size:9px;font-weight:900}
.difficulty-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}
.difficulty-copy strong{margin:0;font-size:12px}.difficulty-copy small{color:#7e8ba0;font-size:9px;font-weight:600;letter-spacing:0;line-height:1.2}
.difficulty-arrow{color:#a4afbe;font-size:20px}
.difficulty-hard .difficulty-number,.difficulty-expert .difficulty-number{background:#fff0f1;color:#c52232}
.difficulty-master .difficulty-number,.difficulty-extreme .difficulty-number{background:#fff6df;color:#916516}
.picker-back{display:block;margin:14px auto 0;padding:7px 14px;border:0;border-radius:10px;background:transparent;color:#718097;font-size:11px;font-weight:800}
.picker-back:hover{background:#f1f4f8;color:#10213b}
@media(max-width:820px){.home-layout{padding:18px 20px 13px}.welcome-hero{min-height:260px;padding:29px 32px}.home-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.home-option{min-height:66px}.hero-sudoku{width:min(180px,42vw)}}
@media(max-width:560px){.home-layout{padding:17px 13px 11px}.home-topbar{margin-bottom:15px}.logo-sudoku{width:43px;height:43px;flex-basis:43px}.logo-word strong{font-size:21px}.logo-word small{font-size:8px}.dom-chip{padding:7px 9px;font-size:9px}.welcome-hero{grid-template-columns:1fr;min-height:auto;padding:26px 22px 18px;border-radius:22px}.hero-copy{max-width:none}.welcome-hero h1{font-size:clamp(36px,10vw,48px)}.hero-description{max-width:360px;font-size:12px;margin:10px 0 15px}.play-button{width:100%;min-height:58px}.hero-art{min-height:138px;margin-top:4px}.art-glow{width:160px;height:160px}.hero-sudoku{width:126px;border-radius:13px;padding:5px;gap:2px}.hero-sudoku span{font-size:17px}.n-one{top:8px;right:25%}.n-two{bottom:3px;left:25%}.floating-star{top:20%;left:22%}.explore-section{margin:21px 0 13px}.section-heading h2{font-size:19px}.section-note{max-width:135px;text-align:right;font-size:9px;line-height:1.35}.home-menu{grid-template-columns:1fr;gap:7px}.home-option{min-height:59px;padding:8px 10px}.option-icon{width:34px;height:34px;flex-basis:34px}.option-copy strong{font-size:12px}.option-copy small{font-size:9px}.dev-badge{max-width:95px}.home-footer{font-size:8px}.game-brand .logo-sudoku{width:34px;height:34px;flex-basis:34px}.game-brand-copy strong{font-size:16px}.game-brand-copy small{font-size:8px}.difficulty-dialog{padding:27px 18px 18px}.difficulty-dialog h2{font-size:23px!important}.difficulty-choice{min-height:62px;padding:7px}.difficulty-copy small{font-size:8px}}
@media(max-width:370px){.home-layout{padding-inline:10px}.home-logo{gap:7px}.dom-chip{gap:4px;padding:6px 7px;font-size:8px}.welcome-hero{padding-inline:17px}.difficulty-grid{grid-template-columns:1fr}.difficulty-choice{min-height:56px}}

/* Flag colors are part of the Sudoku logo mark */
.logo-sudoku{gap:1px;padding:2px;background:#fff}
.logo-sudoku i{border:0!important;border-radius:0;background:#fff;color:#0b3d91}
.logo-sudoku i:nth-child(1),.logo-sudoku i:nth-child(2),.logo-sudoku i:nth-child(5),.logo-sudoku i:nth-child(12),.logo-sudoku i:nth-child(15),.logo-sudoku i:nth-child(16){background:#0b3d91;color:#fff}
.logo-sudoku i:nth-child(3),.logo-sudoku i:nth-child(4),.logo-sudoku i:nth-child(8),.logo-sudoku i:nth-child(9),.logo-sudoku i:nth-child(13),.logo-sudoku i:nth-child(14){background:#d62027;color:#fff}
.logo-sudoku i:nth-child(6),.logo-sudoku i:nth-child(7),.logo-sudoku i:nth-child(10),.logo-sudoku i:nth-child(11){background:#fff;color:#0b3d91}
.logo-sudoku i:nth-child(10),.logo-sudoku i:nth-child(14){color:#d62027}

/* Home actions when a saved game is available */
.hero-actions{width:min(320px,100%);display:flex;flex-direction:column;gap:8px}
.hero-actions .play-button{width:100%}
.play-button-secondary{border:1px solid #d2ddec;background:#fff;color:#0b3d91;box-shadow:0 5px 14px #183b670b}
.play-button-secondary:hover{border-color:#afc0d8;background:#fafdff;box-shadow:0 8px 18px #183b6715}
.play-button-secondary .play-icon{background:#edf3fb;color:#0b3d91}
.play-button-secondary .play-button small,.play-button-secondary small{color:#718097}
@media(max-width:560px){.hero-actions{width:100%;gap:7px}}
.resume-choice-list{display:grid;gap:9px;margin-top:18px}
.resume-choice{width:100%;min-height:69px;display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid #d8e2ef;border-radius:14px;background:#fff;color:#10213b;text-align:left;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}
.resume-choice:hover{transform:translateY(-1px);border-color:#9db7dc;box-shadow:0 7px 16px #12376313}
.resume-choice:focus-visible{outline:3px solid #1976d2;outline-offset:2px}
.resume-choice:first-child{border-color:#b9cde8;background:linear-gradient(100deg,#f2f7ff,#fff)}
.resume-choice-icon{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:11px;background:#e5efff;color:#0b3d91;font-size:16px;font-weight:900}
.new-choice .resume-choice-icon{background:#fff0f1;color:#c52232}

/* SUDOMI 0.2.4 home navigation: secondary features live in a left dropdown */
.home-topbar-left{display:flex;align-items:center;gap:19px;min-width:0}
.home-more-wrap{position:relative;z-index:12}
.home-menu-trigger{display:flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid #dce4ef;border-radius:13px;background:#ffffffd9;color:#203653;font-size:12px;font-weight:800;box-shadow:0 4px 13px #183b6709;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}
.home-menu-trigger:hover,.home-menu-trigger[aria-expanded="true"]{border-color:#b5c7df;background:#fff;box-shadow:0 7px 18px #183b6712}
.home-menu-trigger:focus-visible{outline:3px solid #1976d2;outline-offset:2px}
.home-menu-trigger>span:first-child{color:#0b3d91;font-size:15px}
.menu-caret{color:#718097;font-size:15px;transition:transform .15s ease}
.home-menu-trigger[aria-expanded="true"] .menu-caret{transform:rotate(180deg)}
.home-dropdown{position:absolute;top:calc(100% + 10px);left:0;width:min(286px,calc(100vw - 26px));padding:9px;border:1px solid #dce4ef;border-radius:17px;background:#fff;box-shadow:0 18px 48px #10213b24}
.dropdown-heading{margin:4px 8px 7px;color:#9aa6b6;font-size:9px;font-weight:900;letter-spacing:1.4px}
.dropdown-option{width:100%;min-height:45px;display:flex;align-items:center;gap:10px;padding:7px 8px;border:0;border-radius:11px;background:transparent;color:#203653;text-align:left}
.dropdown-option:hover,.dropdown-option:focus-visible{outline:0;background:#f2f6fc}
.dropdown-option>span{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:9px;background:#f0f4fa;font-size:15px}
.dropdown-option:nth-of-type(2)>span,.dropdown-option:nth-of-type(4)>span{background:#fff8e7}
.dropdown-option:nth-of-type(3)>span,.dropdown-option:nth-of-type(7)>span{background:#f2efff}
.dropdown-option strong{flex:1;margin:0;font-size:12px;font-weight:800}
.dropdown-option small{padding:4px 6px;border-radius:7px;background:#f3f5f8;color:#8490a0;font-size:8px;font-weight:800;letter-spacing:0;white-space:nowrap}
.home-menu .home-option{min-height:90px;padding:14px;border-radius:18px;gap:12px;background:#fff;box-shadow:0 8px 22px #183b670c}
.home-menu .option-icon{width:44px;height:44px;flex-basis:44px;border-radius:14px;font-size:22px}
.home-menu .option-copy strong{font-size:14px}
.home-menu .option-copy small{font-size:10px}
.home-menu .dev-badge{font-size:9px;max-width:96px}
.home-menu .home-option:hover{transform:translateY(-3px);box-shadow:0 13px 25px #183b6718}
.home-menu .home-option:focus-visible{outline:3px solid #1976d2;outline-offset:2px}
@media(max-width:820px){.home-topbar-left{gap:12px}.home-menu .home-option{min-height:82px}}
@media(max-width:560px){.home-layout{padding-top:13px}.home-topbar{align-items:center;gap:7px}.home-topbar-left{gap:8px}.home-menu-trigger{gap:5px;padding:8px 9px;font-size:10px}.home-menu-trigger>span:first-child{font-size:13px}.home-logo{gap:6px}.home-logo .logo-sudoku{width:38px;height:38px;flex-basis:38px}.home-logo .logo-word strong{font-size:18px;letter-spacing:2px}.home-logo .logo-word small{max-width:132px;font-size:7px}.dom-chip{gap:4px;padding:6px 7px;font-size:8px;white-space:nowrap}.home-dropdown{top:calc(100% + 8px);width:min(280px,calc(100vw - 26px))}.home-menu .home-option{min-height:72px;padding:10px 12px}.home-menu .option-icon{width:40px;height:40px;flex-basis:40px;font-size:19px}.home-menu .option-copy strong{font-size:13px}.home-menu .option-copy small{font-size:9px}}
@media(max-width:390px){.home-topbar-left{gap:6px}.home-menu-trigger{padding:7px 8px}.home-menu-trigger>span:nth-child(2){display:none}.home-menu-trigger .menu-caret{display:none}.dom-chip{font-size:7px}.home-logo .logo-word small{display:none}}

/* SUDOMI 0.2.5: mini-games arcade */
.mini-games-screen{min-height:100svh;padding:24px 16px 30px;background:radial-gradient(ellipse at 50% 0,#fff 0,#f4f7fc 55%,#eaf0f8 100%);color:#10213b}
.mini-games-shell{width:min(980px,100%);margin:auto}
.mini-games-header{position:relative;display:flex;align-items:center;gap:22px;margin:0 0 25px;padding:5px 0 19px;border-bottom:1px solid #dfe5ee}
.games-back{display:flex;align-items:center;gap:5px;padding:9px 12px;border:1px solid #dce4ef;border-radius:12px;background:#fff;color:#0b3d91;font-size:12px;font-weight:850;box-shadow:0 4px 12px #183b670b}
.games-back:first-letter{font-size:24px;line-height:12px}
.mini-games-header>div{flex:1}.mini-games-header p,.mini-game-head p{margin:0 0 4px;color:#d62027;font-size:9px;font-weight:900;letter-spacing:1.7px}
.mini-games-header h1{margin:0;font-size:clamp(25px,5vw,34px);letter-spacing:-1px}
.games-brand-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:#e8f0fc;font-size:24px}
.games-intro{margin:0 0 16px;color:#6e7d93;font-size:13px}
.games-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.game-card{min-height:176px;display:flex;flex-direction:column;align-items:flex-start;padding:17px;border:1px solid #dce4ef;border-radius:20px;background:linear-gradient(145deg,#fff,#f9fbfe);color:#10213b;text-align:left;box-shadow:0 8px 22px #183b670b;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.game-card:hover{transform:translateY(-3px);border-color:#b5c9e5;box-shadow:0 14px 28px #183b6718}
.game-card:focus-visible,.mini-tool:focus-visible,.game-restart:focus-visible{outline:3px solid #1976d2;outline-offset:2px}
.game-card>span{width:42px;height:42px;display:grid;place-items:center;margin-bottom:12px;border-radius:13px;background:#edf4ff;font-size:22px}
.game-card strong{margin:0;font-size:15px}.game-card small{margin-top:5px;color:#77869b;font-size:10px;font-weight:600;letter-spacing:0}
.game-card>b{width:100%;display:flex;justify-content:space-between;margin-top:auto;padding-top:14px;color:#0b3d91;font-size:11px}.game-card>b i{font-size:18px;font-style:normal;line-height:12px}
.game-card-upcoming{cursor:default;opacity:.82;background:linear-gradient(145deg,#fff,#f5f7fa)}.game-card-upcoming:hover{transform:none;border-color:#dce4ef;box-shadow:0 8px 22px #183b670b}.game-card .upcoming-label{color:#8b5e12}.games-roadmap-note{margin:16px 2px;color:#77869b;font-size:12px;text-align:center}
.extra-game{display:grid;justify-items:center;gap:12px;padding:12px}.extra-status{text-align:center;color:#38506d;font-weight:700}.extra-hand,.domino-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px}.extra-hand button,.domino-row .extra-tile,.extra-game>button,.extra-game blockquote+button{border:1px solid #cbd6e5;border-radius:10px;background:#fff;color:#122b4c;padding:9px 12px;font-weight:700}.extra-tile{display:inline-grid;place-items:center;min-width:42px;min-height:54px;padding:7px;border:1px solid #becadd;border-radius:8px;background:#fff;box-shadow:0 2px 4px #10213b18;font-size:17px}.extra-game button.selected{outline:3px solid #e9b949}.extra-game button:disabled{opacity:.55}.memory-grid{display:grid;grid-template-columns:repeat(4,minmax(48px,72px));gap:9px}.memory-card{aspect-ratio:1;border:1px solid #cbd6e5;border-radius:12px;background:#edf4ff;color:#0b3d91;font-size:27px;font-weight:800}.dots-grid{display:grid;grid-template-columns:repeat(9,minmax(16px,34px));grid-auto-rows:minmax(16px,34px);align-items:center;justify-items:center}.dot{width:10px;height:10px;border-radius:50%;background:#0b3d91;z-index:1}.dot-edge{padding:0;border:0;background:#dce4ef;border-radius:4px}.dot-edge.h{width:100%;height:9px}.dot-edge.v{width:9px;height:100%}.box-owner{width:100%;height:100%;border-radius:4px}.box-owner.p0{background:#e1263638}.box-owner.p1{background:#1761b238}.dot-edge.on.p0{background:#e12636}.dot-edge.on.p1{background:#1761b2}.mahjong-grid{display:grid;grid-template-columns:repeat(6,minmax(44px,68px));gap:7px}.mahjong-grid .extra-tile{min-height:60px;font-size:18px}.extra-game input{min-width:min(260px,80vw);padding:12px;border:1px solid #bdcbe0;border-radius:10px;font-size:16px;text-align:center}.extra-game blockquote{margin:3px;padding:12px 24px;border-left:4px solid #d7aa45;background:#fff;border-radius:8px;font-size:20px}
.mini-game{width:min(650px,100%);margin:0 auto;padding:18px;border:1px solid #dce4ef;border-radius:22px;background:#fff;box-shadow:0 12px 32px #183b6711}
.mini-game-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.mini-game-head h2{margin:0;color:#10213b;font-size:23px;letter-spacing:-.5px}.mini-game-head small{margin-top:5px;color:#718097;font-size:11px;font-weight:650;letter-spacing:0}
.game-restart{display:flex;align-items:center;gap:6px;padding:9px 11px;border:1px solid #dce4ef;border-radius:11px;background:#f7f9fc;color:#314560;font-size:12px;font-weight:800}
.game-tools{display:flex;justify-content:center;margin:4px 0 10px}.mini-tool{padding:9px 12px;border:1px solid #dce4ef;border-radius:10px;background:#f7f9fc;color:#344862;font-size:11px;font-weight:800}.mini-tool.on{border-color:#aec8ea;background:#eaf3ff;color:#0b3d91}
.mine-grid{width:min(450px,100%);aspect-ratio:1;margin:auto;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:3px;padding:6px;border-radius:14px;background:#98a9bf}
.mine-cell{min-width:0;padding:0;border:0;border-radius:5px;background:#e7edf5;color:#0b3d91;font-size:clamp(12px,3vw,18px);font-weight:900;box-shadow:inset 0 -3px 0 #c3cfdd;touch-action:manipulation}
.mine-cell:hover:not(:disabled){background:#dce8f7}.mine-cell.revealed{background:#fff;box-shadow:none}.mine-cell.mine-hit{background:#ffdadd}.mine-cell:disabled{cursor:default}
.fleet-boards{display:grid;grid-template-columns:1fr 1fr;gap:22px;justify-items:center}
.fleet-boards h3{margin:0 0 8px;color:#536680;font-size:11px;text-align:center}
.fleet-grid{width:min(270px,42vw);aspect-ratio:1;display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:4px;border-radius:10px;background:#8db5d3}
.fleet-cell{min-width:0;padding:0;border:0;border-radius:2px;background:#d7e9f5;color:#c52232;font-size:clamp(11px,2.4vw,18px);font-weight:900}
.fleet-grid button{cursor:pointer}.fleet-grid button:hover:not(:disabled){background:#b8d8ec}.fleet-cell.your-ship{background:#74869b}.fleet-cell.hit{background:#ffc6c9;color:#c52232}.fleet-cell.miss{background:#fff;color:#8ca2b8}
.chess-board,.checkers-board{width:min(480px,100%);aspect-ratio:1;margin:auto;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));border:5px solid #34445b;border-radius:8px;overflow:hidden;box-shadow:0 8px 19px #183b6720}
.chess-cell,.checker-cell{position:relative;min-width:0;padding:0;border:0;display:grid;place-items:center;touch-action:manipulation}
.light-square{background:#f0dfc2}.dark-square{background:#9b7159}
.chess-cell{font-family:"Segoe UI Symbol",serif;font-size:clamp(23px,7vw,49px);line-height:1;color:#202b3a;text-shadow:0 1px 1px #fff9}
.chess-cell:nth-child(n+1):nth-child(-n+16){color:#26384f}.chess-cell.chosen,.checker-cell.chosen{box-shadow:inset 0 0 0 4px #ffe369}
.chess-cell.possible:after{content:"";position:absolute;width:24%;height:24%;border-radius:50%;background:#0b3d9177}.chess-cell.white-piece-square{color:#fff;text-shadow:0 2px 2px #23354f,0 0 3px #23354f}
.checker-cell.possible:after{content:"";position:absolute;width:25%;height:25%;border:2px solid #fff;border-radius:50%;background:#49a879aa}
.checker-cell.capture-target:after{width:48%;height:48%;border-color:#ffcc44;background:#d6202780}
.checker-piece{width:72%;height:72%;display:grid;place-items:center;border:2px solid #fff8;border-radius:50%;font-family:serif;font-size:clamp(16px,5vw,29px);font-weight:900;box-shadow:0 3px 6px #10213b66}
.red-piece{background:radial-gradient(circle at 35% 28%,#ff7278,#ba1621 72%);color:#fff}.black-piece{background:radial-gradient(circle at 35% 28%,#64758b,#172538 72%);color:#f5d889}
.ttt-board{width:min(390px,100%);aspect-ratio:1;margin:8px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:9px;border-radius:18px;background:#eaf0f8}
.ttt-cell{border:1px solid #dce4ef;border-radius:13px;background:#fff;color:#0b3d91;font-size:clamp(44px,13vw,78px);font-weight:900;box-shadow:0 5px 12px #183b670b}.ttt-cell.mark-o{color:#d62027}.ttt-cell:disabled{cursor:default}
.board-hint{margin:13px 0 0;color:#8a97a8;font-size:10px;line-height:1.5;text-align:center}
@media(max-width:700px){.games-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-card{min-height:157px}.mini-game{padding:15px}}
@media(max-width:480px){.mini-games-screen{padding:16px 11px 22px}.mini-games-header{gap:10px;margin-bottom:18px;padding-bottom:13px}.games-back{padding:8px}.games-brand-mark{width:40px;height:40px}.games-grid{gap:9px}.game-card{min-height:145px;padding:13px;border-radius:16px}.game-card>span{width:36px;height:36px;margin-bottom:9px;font-size:19px}.game-card strong{font-size:13px}.game-card small{font-size:9px}.mini-game{padding:12px;border-radius:17px}.mini-game-head h2{font-size:20px}.game-restart{padding:8px;font-size:10px}.fleet-boards{gap:10px}.fleet-grid{width:min(44vw,210px);gap:1px}.chess-board,.checkers-board{border-width:4px}.chess-cell{font-size:clamp(21px,9vw,42px)}}
@media(max-width:350px){.games-grid{grid-template-columns:1fr}.game-card{min-height:120px}.game-card>b{padding-top:8px}.game-restart span{display:none}}
.mode-picker{width:min(460px,100%);margin:32px auto;padding:24px;border:1px solid #dce4ef;border-radius:22px;background:#fff;text-align:center;box-shadow:0 12px 32px #183b6711}
.mode-game-icon{width:56px;height:56px;display:grid;place-items:center;margin:0 auto 12px;border-radius:18px;background:#edf4ff;font-size:29px}
.mode-picker>p{margin:0 0 4px;color:#d62027;font-size:9px;font-weight:900;letter-spacing:1.6px}.mode-picker h2{margin:0 0 19px;font-size:25px}
.mode-choices{display:grid;gap:9px}.mode-choices button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;border:1px solid #dce4ef;border-radius:14px;background:#fff;color:#203653;text-align:left}.mode-choices button:hover{border-color:#9fb9dc;background:#f8fbff}.mode-choices strong{margin:0;font-size:13px}.mode-choices small{color:#7c8ba0;font-size:10px;font-weight:600;letter-spacing:0}
.mode-back{margin:0 0 2px}
.mini-game-actions{display:flex;gap:6px;align-items:center}
.pass-device{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}.pass-device>span{font-size:40px}.pass-device h3{margin:12px 0 4px;font-size:19px}.pass-device p{margin:0 0 17px;color:#77869b;font-size:12px}.pass-device .primary-action{padding:11px 17px;border:0;border-radius:11px;background:#0b3d91;color:#fff;font-weight:850}
.connect-board{width:min(630px,100%);aspect-ratio:7/6;margin:auto;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));gap:6px;padding:10px;border:1px solid #b6cee4;border-radius:19px;background:linear-gradient(145deg,#1674c7,#0b3d91);box-shadow:0 9px 22px #0b3d9126}
.connect-slot{display:grid;place-items:center;min-width:0;min-height:0;width:100%;height:100%;aspect-ratio:1;padding:0;border:0;border-radius:50%;background:#eaf2fa;box-shadow:inset 0 3px 7px #0b3d9133;color:transparent;font-size:clamp(18px,5vw,36px);line-height:1;cursor:pointer}.connect-slot.red-disc{background:radial-gradient(circle at 35% 28%,#ff8084,#c91f2c 74%);box-shadow:inset 0 2px 5px #fff6,0 2px 4px #10213b4d;color:#fff}.connect-slot.yellow-disc{background:radial-gradient(circle at 35% 28%,#fff1a0,#e8a91f 74%);box-shadow:inset 0 2px 5px #fff9,0 2px 4px #10213b4d;color:#fff}.connect-slot:disabled{cursor:default;opacity:1}
@media(max-width:480px){.mode-picker{margin:22px auto;padding:20px 15px}.mini-game-actions{gap:4px}.mini-game-actions .game-restart{padding:7px}.connect-board{gap:3px;padding:6px;border-radius:13px}.connect-col{gap:3px}.pass-device{min-height:260px}}

/* 0.2.7 board sizing, turn/score indicators, setup and result screens */
.mini-game{position:relative;overflow:hidden}
.mini-game-head{align-items:flex-start}
.mini-game-actions{max-width:62%;flex-wrap:wrap;justify-content:flex-end}
.mini-game-actions .game-restart{min-height:34px}
.turn-indicator{display:flex;align-items:center;justify-content:center;min-height:34px;padding:6px 10px;border:1px solid #d6e4f5;border-radius:999px;background:#edf5ff;color:#0b3d91;font-size:10px;font-weight:900;white-space:nowrap}
.match-score{width:min(360px,100%);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:11px;margin:0 auto 14px;padding:9px 12px;border:1px solid #dce4ef;border-radius:14px;background:#f7faff}
.match-score span{display:flex;align-items:center;justify-content:space-between;gap:7px;color:#50627b;font-size:10px;font-weight:800}
.match-score span:last-child{flex-direction:row-reverse}
.match-score b{min-width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:#fff;color:#0b3d91;font-size:14px}
.match-score i{color:#9ba8b8;font-size:9px;font-style:normal;font-weight:900}
.game-end-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:18px;background:#091a30ad;backdrop-filter:blur(5px)}
.game-end-card{width:min(420px,100%);padding:27px 22px;border:1px solid #e3eaf3;border-radius:24px;background:#fff;text-align:center;box-shadow:0 24px 80px #07172b55;animation:end-pop .2s ease-out}
.game-end-card>p{margin:0 0 7px;color:#d62027;font-size:9px;font-weight:900;letter-spacing:1.6px}
.game-end-card h3{margin:0 0 9px;color:#10213b;font-size:26px}
.game-end-card>strong{display:block;margin:0 0 5px;color:#0b3d91;font-size:15px}
.game-end-card>small{display:block;color:#79879a;font-size:11px;font-weight:600;letter-spacing:0}
.game-end-card>div{display:grid;gap:8px;margin-top:19px}
.game-end-card button{min-height:42px;padding:9px 12px;border:1px solid #dce4ef;border-radius:12px;background:#f5f8fc;color:#344862;font-size:12px;font-weight:850}
.game-end-card button:first-child{border-color:#0b3d91;background:#0b3d91;color:#fff}
@keyframes end-pop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.mine-grid{width:min(88vw,450px);height:min(88vw,450px);grid-template-rows:repeat(9,minmax(0,1fr));overflow:hidden}
.mine-cell{min-width:0;min-height:0;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;line-height:1;font-size:clamp(10px,3.2vw,18px)}
.fleet-grid{height:min(42vw,270px);grid-template-rows:repeat(8,minmax(0,1fr));overflow:hidden}
.fleet-cell{min-width:0;min-height:0;aspect-ratio:1;overflow:hidden;line-height:1}
.fleet-setup-tools{display:grid;gap:9px;justify-items:center;margin:0 0 11px}
.ship-choice-list{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.ship-choice{min-width:0;min-height:48px;padding:6px;border:1px solid #dbe4ef;border-radius:10px;background:#f8faff;color:#314760;font-size:9px;font-weight:850}
.ship-choice small{margin-top:3px;color:#8290a4;font-size:8px;font-weight:650;letter-spacing:0}
.ship-choice.selected{border-color:#3f79bd;background:#e8f2ff;color:#0b3d91;box-shadow:0 0 0 2px #0b3d9114}
.ship-choice.used{opacity:.4}
.ship-choice:disabled{cursor:not-allowed}
.undo-ship:disabled{opacity:.45;cursor:not-allowed}
.fleet-placement-grid{width:min(88vw,480px);height:min(88vw,480px);display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));gap:3px;margin:auto;padding:6px;border-radius:15px;background:#8db5d3;overflow:hidden}
.setup-cell{min-width:0;min-height:0;aspect-ratio:1;background:#d7e9f5;box-shadow:none}
.setup-cell.your-ship{background:#536c86;box-shadow:inset 0 0 0 1px #ffffff66}
.setup-cell.preview{background:#59b98b!important}
.fleet-placement-grid .setup-cell:disabled{cursor:default;opacity:1}
.fleet-battle{display:grid;grid-template-columns:1fr 1fr;gap:15px;justify-items:center;align-items:start}
.fleet-battle.fleet-single{grid-template-columns:1fr}
.fleet-battle h3{margin:0 0 8px;color:#536680;font-size:11px;text-align:center}
.fleet-battle .fleet-grid{width:min(39vw,260px);height:min(39vw,260px)}
.shot-feedback{width:max-content;max-width:100%;margin:13px auto 0;padding:9px 15px;border-radius:12px;font-size:14px;font-weight:950;text-align:center}
.hit-feedback{background:#fff0f1;color:#bf1e2c}.miss-feedback{background:#edf4fb;color:#56708f}
.pass-next{display:block;margin:12px auto 0;padding:11px 15px;border:0;border-radius:12px;background:#0b3d91;color:#fff;font-size:11px;font-weight:900}
.chess-board,.checkers-board{width:min(88vw,480px);height:min(88vw,480px);aspect-ratio:1;grid-template-rows:repeat(8,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);overflow:hidden}
.chess-cell,.checker-cell{min-width:0;min-height:0;aspect-ratio:1;overflow:hidden;line-height:1}
.chess-cell{font-size:clamp(20px,8vw,47px)}
.checkers-layout{display:grid;grid-template-columns:58px minmax(0,min(64vw,448px)) 58px;gap:9px;align-items:stretch;justify-content:center}
.checkers-layout .checkers-board{width:100%;height:auto;min-width:0;aspect-ratio:1}
.checker-piece{width:68%;height:68%;min-width:0;min-height:0;aspect-ratio:1;font-size:clamp(10px,3vw,20px);line-height:1;overflow:hidden}
.checker-piece b{font-size:clamp(9px,2.5vw,17px);line-height:1}
.captured-tray{min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;border:1px solid #e0e6ee;border-radius:12px;background:#f9fbfe}
.captured-tray>strong{font-size:15px}.captured-tray>small{font-size:7px;letter-spacing:0;text-align:center}
.captured-tray>div{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;align-content:start;justify-items:center}
.captured-piece{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;font-size:11px;font-style:normal;line-height:1}
.captured-piece.red-captures{background:#d52935;color:#fff}.captured-piece.black-captures{background:#26384d;color:#f9dc83}
.ttt-board{width:min(88vw,390px);height:min(88vw,390px);aspect-ratio:1;grid-template-rows:repeat(3,minmax(0,1fr));overflow:hidden}
.ttt-cell{min-width:0;min-height:0;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;line-height:1}
.mine-clock{display:flex;align-items:center;gap:5px;padding:8px 11px;border:1px solid #dce4ef;border-radius:10px;background:#f7faff;color:#526680;font-size:11px;font-weight:800}.mine-clock b{color:#0b3d91;font-size:14px}
.connect-board{width:min(90vw,630px);height:auto;aspect-ratio:7/6;grid-template-rows:repeat(6,minmax(0,1fr));overflow:hidden}
.connect-slot{min-width:0;min-height:0;aspect-ratio:1;overflow:hidden;font-size:clamp(14px,4.5vw,35px)}
.falling-disc{animation:disc-drop .85s cubic-bezier(.2,.72,.25,1) both}
@keyframes disc-drop{from{transform:translateY(-520%)}to{transform:translateY(0)}}
.fleet-placement-grid .setup-cell{font-size:0}
@media(max-width:560px){.mini-game{padding:11px}.mini-game-head{gap:7px}.mini-game-actions{max-width:69%;gap:4px}.mini-game-actions .game-restart{min-height:30px;padding:6px 7px;font-size:9px}.mini-game-actions #restartMini{font-size:14px}.turn-indicator{min-height:30px;padding:5px 7px;font-size:8px}.checkers-layout{grid-template-columns:31px minmax(0,68vw) 31px;gap:4px}.captured-tray{padding:4px 1px;border-radius:8px}.captured-tray>small{font-size:6px}.captured-tray>div{grid-template-columns:1fr}.captured-piece{width:15px;height:15px;font-size:9px}.fleet-placement-grid{gap:2px;padding:4px}.ship-choice-list{grid-template-columns:repeat(2,minmax(0,1fr))}.fleet-battle{gap:7px}.fleet-battle .fleet-grid{width:min(41vw,210px);height:min(41vw,210px)}.mine-grid{width:min(88vw,420px);height:min(88vw,420px)}.connect-board{gap:3px;padding:6px}.connect-col{gap:3px}.game-end-card{padding:23px 17px}}
@media(max-width:360px){.mini-game-actions #gameListBtn,.mini-game-actions #sudokuBtn,.mini-game-actions #changeMode{font-size:8px;padding:5px}.turn-indicator{font-size:7px}.checkers-layout{grid-template-columns:25px minmax(0,71vw) 25px;gap:3px}}

/* Local Wi-Fi room lobby */
.wifi-lobby{width:min(360px,100%);display:grid;gap:12px;margin:18px auto 0;text-align:center}
.wifi-lobby label{margin-top:8px;color:#596b83;font-size:12px;font-weight:750}
.wifi-lobby input{width:100%;padding:13px;border:1px solid #d5dfeb;border-radius:12px;background:#fff;color:#10213b;text-align:center;font-size:20px;font-weight:900;letter-spacing:5px;text-transform:uppercase}
.wifi-lobby .primary-action,.wifi-lobby .secondary-action{min-height:44px;border:0;border-radius:12px;font-weight:850}
.wifi-lobby .primary-action{background:#0b3d91;color:#fff}.wifi-lobby .secondary-action{background:#edf3fb;color:#173559}
.wifi-lobby p{margin:8px 0 0;color:#7c899b;font-size:11px;line-height:1.6}.wifi-room-code{display:block;margin:8px;color:#0b3d91;font-size:32px;letter-spacing:7px}.wifi-lobby button:disabled,.game-end-card button:disabled{opacity:.45;cursor:not-allowed}

/* Local pass-and-play victory celebrations stay on the board until acknowledged. */
.victory-awaiting{width:fit-content;max-width:100%;display:grid;gap:3px;margin:8px auto 12px;padding:8px 14px;border:1px solid #f1d479;border-radius:13px;background:#fff9e8;color:#70520a;text-align:center;font-size:12px;box-shadow:0 5px 18px #9a75151c}
.victory-awaiting strong{font-size:14px}.victory-awaiting span{font-size:11px;line-height:1.4}
.ttt-cell.winning-cell{position:relative;z-index:1;animation:ttt-victory-hop .72s ease-in-out infinite;animation-delay:var(--win-delay,0ms);box-shadow:0 0 0 3px #f3c844,0 7px 15px #8a670b31}
@keyframes ttt-victory-hop{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-9px) scale(1.08)}}
.connect-slot.winning-disc{position:relative;z-index:1;overflow:visible}
.connect-slot.winning-disc::after{content:"";position:absolute;inset:2px;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 3px #f3c844;pointer-events:none;animation:connect-win-ring .9s ease-in-out infinite alternate}
@keyframes connect-win-ring{from{transform:scale(.9);opacity:.68}to{transform:scale(1.12);opacity:1}}
.fleet-cell.winning-shot{position:relative;z-index:1;animation:fleet-win-flash .72s ease-in-out infinite alternate}
@keyframes fleet-win-flash{from{box-shadow:inset 0 0 0 2px #ffd54f}to{box-shadow:inset 0 0 0 4px #fff,0 0 14px #ffd54f}}
.chess-cell.mated-king{position:relative;z-index:1;animation:king-mate-flash .8s ease-in-out infinite alternate}
@keyframes king-mate-flash{from{box-shadow:inset 0 0 0 2px #e02032;background-color:#ffd8dc}to{box-shadow:inset 0 0 0 5px #e02032,0 0 17px #e0203275;background-color:#ff9da7}}
.checker-piece.winning-piece{animation:checker-win-bounce .78s ease-in-out infinite alternate}
@keyframes checker-win-bounce{from{transform:translateY(0) scale(1)}to{transform:translateY(-5px) scale(1.13);filter:drop-shadow(0 0 5px #f4cb46)}}
@media(prefers-reduced-motion:reduce){.ttt-cell.winning-cell,.connect-slot.winning-disc::after,.fleet-cell.winning-shot,.chess-cell.mated-king,.checker-piece.winning-piece{animation:none}}

/* Keep tic-tac-toe centered relative to each phone's available game area. */
.ttt-board-wrap{width:100%;display:grid;place-items:center;padding-inline:0}
.ttt-board-wrap .ttt-board{width:min(100%,390px);height:auto;aspect-ratio:1;margin:8px auto 0;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));justify-self:center}
.ttt-board-wrap .ttt-cell{min-width:0;min-height:0;display:grid;place-items:center;padding:0;text-align:center;line-height:1}
.ttt-mark{width:100%;height:100%;display:grid;place-items:center;line-height:1;transform:translateY(-.025em)}

/* =====================================================================
   SUDOMI 0.2.13 — arcade look for the card / tile side games.
   Everything is scoped to .arc (the side-game wrapper), .wifi-toast and
   .wifi-resume, so the sudoku and the settings screens are not affected.
   ===================================================================== */
.extra-game.arc{display:block;width:100%;padding:0;justify-items:stretch;--p0:#e12636;--p1:#1761b2;--felt1:#21915f;--felt2:#145a3c}
.arc button:disabled{opacity:1}
.arc small,.arc strong{margin:0}

/* player chips */
.arc-bar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.arc-chip{position:relative;display:flex;align-items:center;gap:9px;padding:8px 10px;border:2px solid #dce4ef;border-radius:14px;background:#f6f9fd;transition:border-color .2s,background .2s}
.arc-chip .av{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:900;font-size:14px}
.arc-chip.p0 .av{background:var(--p0)}.arc-chip.p1 .av{background:var(--p1)}
.arc-chip strong{display:block;font-size:12px;line-height:1.1;margin:0}
.arc-chip small{display:block;margin-top:2px;font-size:10px;letter-spacing:0;font-weight:700;color:#5e6f88}
.arc-chip.turn{background:#fff;animation:arcPulse 1.6s ease-in-out infinite}
.arc-chip.p0.turn{border-color:var(--p0)}.arc-chip.p1.turn{border-color:var(--p1)}
.arc-chip.won{background:#fff8dc;border-color:#f0b429}
.arc-chip .crown{position:absolute;right:8px;top:-11px;font-size:20px;animation:arcBounce .8s ease-out}

/* messages, notices, buttons */
.arc-msg{margin:8px 0;padding:8px 12px;border-radius:12px;background:#eef5ff;color:#27456d;font-size:12.5px;font-weight:700;text-align:center}
.arc-sub{display:block;margin:4px 0;font-size:11px;font-weight:650;letter-spacing:0;color:#6b7b92}
.arc-sub.center{text-align:center}
.arc-hint{color:#cfeedd;font-size:12px;font-weight:700;text-align:center}
.arc-wait{margin:8px 0;padding:9px 12px;border-radius:12px;background:#fff6dc;border:1px dashed #e0b84a;color:#7a5a05;font-size:12.5px;font-weight:800;text-align:center}
.arc-wait.big{padding:30px 14px;font-size:15px;line-height:1.6}
.arc-alert{margin:8px 0;padding:10px 12px;border-radius:12px;background:#d62027;color:#fff;font-weight:900;text-align:center;animation:arcPulseBtn 1s infinite}
.arc-btn{min-height:44px;padding:9px 16px;border:0;border-radius:13px;background:#0b3d91;color:#fff;font-weight:850;font-size:13px;box-shadow:0 4px 0 #082c6a;touch-action:manipulation;transition:transform .08s,box-shadow .08s}
.arc-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 #082c6a}
.arc-btn.alt{background:#edf3fb;color:#27456d;box-shadow:0 4px 0 #ccd8ea}
.arc-btn.big{min-height:50px;padding:11px 22px;font-size:15px}
.arc-btn:disabled{opacity:.38;box-shadow:none;cursor:not-allowed}
.arc-btn.pulse{animation:arcPulseBtn 1.2s ease-in-out infinite}
.arc-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;margin:12px 0 4px}

/* pass-the-device curtain */
.arc-curtain{text-align:center;padding:34px 14px;border-radius:18px;background:linear-gradient(160deg,#10213b,#1d3f73);color:#fff}
.arc-curtain .lock{display:block;font-size:46px}
.arc-curtain h3{margin:10px 0 4px;font-size:22px}
.arc-curtain .arc-msg{background:rgba(255,255,255,.12);color:#e7efff}
.arc-curtain .arc-sub{color:#b9cae6;margin-bottom:14px}

/* the felt table */
.arc-felt{position:relative;padding:12px;border-radius:18px;color:#fff;background:radial-gradient(ellipse at 50% 25%,var(--felt1),var(--felt2));box-shadow:inset 0 0 0 4px #0d3b27,inset 0 10px 34px rgba(0,0,0,.35),0 8px 18px rgba(10,39,82,.15)}
.arc-felt .arc-sub{color:#cfeedd}
.bj-tag{display:block;min-width:74px;font-size:10px;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:#bfe9d1}

/* playing cards (standard deck) */
.pcard{position:relative;display:inline-block;flex:none;width:52px;height:74px;border-radius:8px;background:#fff;border:1px solid #c9d3e3;box-shadow:0 3px 7px rgba(0,0,0,.28);font-weight:900;vertical-align:top;user-select:none}
.pcard b{position:absolute;top:4px;left:6px;font-size:15px;line-height:1}
.pcard i{position:absolute;top:19px;left:6px;font-style:normal;font-size:12px;line-height:1}
.pcard em{position:absolute;inset:0;display:grid;place-items:center;padding-top:10px;font-style:normal;font-size:28px}
.pcard.red{color:#d62027}.pcard.blk{color:#10213b}
.pcard.back{border:3px solid #fff;background:repeating-linear-gradient(45deg,#0b3d91 0 5px,#1a5ec4 5px 10px)}
.pcard.mini{width:30px;height:42px;border-width:2px;border-radius:6px}
.pcard.empty{border:2px dashed rgba(255,255,255,.4);background:transparent;box-shadow:none}
.backs{display:inline-flex}.backs .pcard{margin-left:-18px}.backs .pcard:first-child{margin-left:0}
.fan{display:flex;align-items:center;flex-wrap:wrap}
.fan>.pcard,.fan>.cardbtn{margin-left:-14px}.fan>.pcard:first-child,.fan>.cardbtn:first-child{margin-left:0}
.cardbtn{position:relative;padding:0;border:0;background:none;touch-action:manipulation;transition:transform .15s}
.cardbtn:disabled{cursor:default}
.cardbtn.lift{transform:translateY(-14px)}
.cardbtn.hint .pcard,.cardbtn.hint .scard{box-shadow:0 0 0 3px #ffd54a,0 0 16px #ffd54a}
.swapflag{position:absolute;left:50%;bottom:-19px;transform:translateX(-50%);padding:2px 7px;border-radius:8px;background:#ffd54a;color:#4a3500;font-size:9px;font-weight:900;white-space:nowrap}
.deal{animation:arcDeal .4s ease-out backwards;animation-delay:calc(var(--i,0)*70ms)}

/* Spanish deck (escoba) */
.scard{position:relative;display:inline-block;flex:none;width:58px;height:84px;border-radius:9px;border:1px solid #c9a45c;background:linear-gradient(#fffaf0,#f6e9c8);box-shadow:0 3px 7px rgba(0,0,0,.3);font-weight:900;user-select:none}
.scard b{position:absolute;top:4px;left:7px;font-size:17px;line-height:1}
.scard em{position:absolute;inset:0;display:grid;place-items:center;padding-top:6px;font-style:normal;font-size:30px}
.scard small{position:absolute;left:0;right:0;bottom:3px;text-align:center;font-size:8px;letter-spacing:0;font-weight:800;color:inherit;opacity:.85}
.scard.oros{color:#9a6a00}.scard.copas{color:#b3262c}.scard.espadas{color:#1d4ea8}.scard.bastos{color:#2f7d32}

/* hands under the table */
.d-hand{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:14px 0 6px;padding-bottom:6px}

/* domino */
.dtile{position:relative;display:inline-flex;align-items:center;flex:none;width:64px;height:34px;border-radius:7px;border:1px solid #b9ae92;background:linear-gradient(#fffdf5,#efe9d6);box-shadow:0 3px 6px rgba(0,0,0,.35)}
.dtile u{flex:none;width:2px;height:70%;border-radius:2px;background:#7b7258}
.dh{flex:1;height:100%;padding:4px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}
.dh i{place-self:center;width:6px;height:6px;border-radius:50%;background:transparent}.dh i.on{background:#10213b}
.dtile.sm{width:44px;height:24px}.dtile.sm .dh{padding:2px}.dtile.sm .dh i{width:4px;height:4px}
.dtile.pop{animation:arcPop .5s ease-out}
.dbtn{padding:3px;border:0;border-radius:10px;background:none;touch-action:manipulation;transition:transform .12s}
.dbtn.ok .dtile{box-shadow:0 0 0 3px #ffd54a,0 3px 6px rgba(0,0,0,.35)}
.dbtn.no{opacity:.5!important}
.dbtn.picked{transform:translateY(-8px)}
.d-board{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;align-items:center;min-height:96px;padding:8px 2px}
.d-ends{display:flex;justify-content:space-between;padding:0 6px}.d-ends span{padding:2px 9px;border-radius:9px;background:rgba(0,0,0,.3);font-size:12px;font-weight:900}
.d-opp{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;font-weight:800;color:#cfeedd}
.d-open{display:flex;flex-wrap:wrap;gap:3px}
.dback{display:inline-block;width:18px;height:32px;border-radius:4px;border:1px solid #b9ae92;background:repeating-linear-gradient(45deg,#f4f0e2 0 4px,#e6dfc8 4px 8px)}
.d-side{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;margin:8px 0;font-size:12px;font-weight:800;color:#27456d}

/* memory */
.mem-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:380px;margin:10px auto}
.mcard{position:relative;aspect-ratio:1;padding:0;border:2px solid transparent;border-radius:14px;color:#fff;background:linear-gradient(145deg,#2a86e0,#0b3d91);box-shadow:0 5px 0 #08306f;touch-action:manipulation}
.mcard .mc-back{display:grid;place-items:center;height:100%;font-size:26px;font-weight:900;opacity:.5}
.mcard .mc-face{position:absolute;inset:0;display:none;place-items:center;font-size:clamp(30px,9vw,44px)}
.mcard.up{border-color:#c8d4e6;background:#fff;box-shadow:0 5px 0 #c8d4e6}
.mcard.up .mc-back{display:none}.mcard.up .mc-face{display:grid}
.mcard.own0{border-color:var(--p0);background:#ffe5e8;box-shadow:0 5px 0 var(--p0)}
.mcard.own1{border-color:var(--p1);background:#e1eeff;box-shadow:0 5px 0 var(--p1)}
.mcard:not(.up):not(:disabled):active{transform:translateY(3px);box-shadow:0 2px 0 #08306f}
.mcard.flip{animation:arcFlip .35s ease-out}
.pairpop{animation:arcPop .55s ease-out}

/* dots and boxes */
.dots-board{--dot:14px;display:grid;grid-template-columns:repeat(4,var(--dot) 1fr) var(--dot);grid-template-rows:repeat(4,var(--dot) 1fr) var(--dot);width:min(100%,380px);aspect-ratio:1;margin:10px auto;padding:6px}
.dd{place-self:center;width:var(--dot);height:var(--dot);border-radius:50%;background:#10213b}
.dedge{position:relative;padding:0;border:0;background:transparent;touch-action:manipulation}
.dedge.h{height:var(--dot)}.dedge.v{width:var(--dot)}
.dedge::before{content:"";position:absolute}
.dedge.h::before{inset:-10px 0}.dedge.v::before{inset:0 -10px}
.dedge::after{content:"";position:absolute;border-radius:6px;background:#dbe3ef;transition:background .15s}
.dedge.h::after{left:2px;right:2px;top:50%;height:7px;margin-top:-3.5px}
.dedge.v::after{top:2px;bottom:2px;left:50%;width:7px;margin-left:-3.5px}
.dedge:not(:disabled):hover::after{background:#9db7dd}
.dedge.on.p0::after{background:var(--p0)}.dedge.on.p1::after{background:var(--p1)}
.dedge.last::after{box-shadow:0 0 0 3px rgba(255,213,74,.95)}
.dbox{display:grid;place-items:center;margin:3px;border-radius:8px;color:#fff;font-size:clamp(14px,5vw,22px);font-weight:900}
.dbox.own0{background:var(--p0)}.dbox.own1{background:var(--p1)}

/* STOP */
.stop-top{display:flex;align-items:center;gap:14px;margin:8px 0}
.stop-top.small{gap:10px}.stop-top.small .stop-letter{width:50px;height:50px;font-size:30px;border-radius:14px}
.stop-letter{flex:none;width:68px;height:68px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#e0303a,#a3131a);color:#fff;font-size:42px;font-weight:900;box-shadow:0 5px 0 #7c0d13}
.stop-timer{flex:1;color:#5e6f88;font-size:12px;font-weight:800}.stop-timer b{font-size:26px;color:#10213b}
.stop-timer .bar{height:10px;margin-top:5px;overflow:hidden;border-radius:8px;background:#e5ecf6}
.stop-timer .bar i{display:block;height:100%;background:#1976d2;transition:width 1s linear}
.stop-list{display:grid;gap:7px;margin:10px 0;padding:0;list-style:none}
.stop-list li{display:grid;grid-template-columns:40% 1fr;gap:8px;align-items:center}
.stop-list label{font-size:12px;font-weight:800;color:#27456d}
.arc .stop-list input{min-width:0;width:100%;min-height:44px;padding:6px 11px;border:2px solid #d6e0ee;border-radius:11px;color:#10213b;font-size:16px;font-weight:700;text-align:left}
.arc .stop-list input:focus{outline:0;border-color:#1976d2;box-shadow:0 0 0 3px rgba(25,118,210,.2)}
.arc-btn.stopbtn{width:100%;max-width:340px;background:#d62027;box-shadow:0 5px 0 #9b1218;font-size:22px;letter-spacing:2px}
.stop-votes{display:grid;gap:7px;margin:8px 0;padding:0;list-style:none}
.stop-votes li{display:grid;grid-template-columns:1fr auto;grid-template-areas:"q v" "a v";gap:2px 10px;align-items:center;padding:9px 11px;border:2px solid #d9e1ee;border-radius:12px;background:#fff}
.stop-votes li.good{border-color:#bfe6cf;background:#f3fbf6}.stop-votes li.bad{border-color:#f3c3c6;background:#fdeeee}.stop-votes li.no{border-color:#f1d4a5;background:#fdf3e4}
.stop-votes .q{grid-area:q;font-size:10px;font-weight:800;color:#6b7890}
.stop-votes b{grid-area:a;font-size:16px}
.stop-votes em,.stop-votes .vote{grid-area:v}
.stop-votes em{font-style:normal;font-size:11px;font-weight:800;color:#b3262c}
.vote{padding:8px 11px;border:0;border-radius:10px;font-size:12px;font-weight:850}
.vote.yes{background:#27ae60;color:#fff}.vote.no{background:#e8b1b4;color:#7c0d13}
.stop-result{display:grid;justify-items:center;gap:10px}
.stop-table{width:100%;border-collapse:collapse;font-size:12px}
.stop-table th,.stop-table td{padding:6px 8px;border-bottom:1px solid #e5ecf6;text-align:left}
.stop-table th{font-size:10px;letter-spacing:1px;color:#6b7890}
.stop-table td small{display:inline;margin-left:6px;font-size:10px}
.stop-table td.pts{color:#157347;font-weight:800}.stop-table td.zero{color:#9aa7ba}
.stop-table tfoot td{font-weight:900;font-size:14px;border-bottom:0}

/* mahjong duel */
.mj-board{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;max-width:440px;margin:0 auto;padding:8px 6px 6px}
.mj-cell{position:relative;aspect-ratio:5/6}
.mj-tile{position:absolute;inset:0;display:grid;place-items:center;padding:0;border:2px solid transparent;border-radius:6px;background:linear-gradient(160deg,#fffdf4,#ece4cc);box-shadow:2px 3px 0 #b9ae8e,3px 5px 6px rgba(0,0,0,.4);touch-action:manipulation;transition:transform .12s,filter .15s}
.mj-tile.top{z-index:2;transform:translate(-4px,-5px);box-shadow:2px 3px 0 #b9ae8e,4px 8px 10px rgba(0,0,0,.45)}
.mj-tile.blocked{filter:brightness(.6) saturate(.7);cursor:not-allowed}
.mj-tile.free:not(.sel){border-color:#ffe98a}
.mj-tile.free:not(:disabled):hover{transform:translateY(-2px)}
.mj-tile.top.free:not(:disabled):hover{transform:translate(-4px,-7px)}
.mj-tile.sel{border-color:#ffd54a;box-shadow:0 0 14px #ffd54a,2px 3px 0 #b9ae8e}
.mj-sym{display:flex;flex-direction:column;align-items:center;line-height:1;font-size:clamp(13px,4.4vw,22px);font-weight:900}
.mj-sym .s{font-size:.7em}
.mj-sym.w{color:#10213b}.mj-sym.r{color:#d62027}.mj-sym.g{color:#1c8a4a}.mj-sym.c{color:#b3262c}.mj-sym.d{color:#1761b2}

/* blackjack + poker */
.bj-row,.pk-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-height:100px;padding:8px 4px}
.bj-row+.bj-row,.pk-row+.pk-row{border-top:1px dashed rgba(255,255,255,.25)}
.pk-row.me{padding-bottom:26px}
.tot{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 8px;border-radius:17px;background:#fff;color:#10213b;font-size:16px;font-weight:900}
.tot.bust{background:#d62027;color:#fff}
.tagpill{padding:3px 8px;border-radius:9px;background:#ffd54a;color:#4a3500;font-size:10px;font-weight:900}
.verdict{padding:3px 9px;border-radius:9px;background:#fff;color:#10213b;font-size:11px;font-weight:900}
.verdict.v2{background:#27ae60;color:#fff}.verdict.v0{background:#d62027;color:#fff}.verdict.v1{background:#f2c94c}
.hand-name{padding:5px 11px;border-radius:12px;background:#fff;color:#10213b;font-size:12px;font-weight:900}.hand-name.best{background:#ffd54a}

/* escoba */
.es-score{margin-bottom:8px;text-align:center;font-size:12px;font-weight:800;color:#27456d}
.es-opp{display:flex;align-items:center;justify-content:center;gap:10px}
.es-table{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;min-height:100px;padding:10px 0}
.es-piles{display:flex;justify-content:space-between;gap:8px;margin-top:6px}
.es-pile{padding:4px 10px;border-radius:10px;background:rgba(0,0,0,.28);font-size:11px;font-weight:800}
.es-pile.p0{border-left:4px solid var(--p0)}.es-pile.p1{border-left:4px solid var(--p1)}
.es-sumline{margin:4px 0;text-align:center;font-size:13px;font-weight:800}
.es-sumline b{font-size:22px}.es-sumline b.ok{color:#27ae60}.es-sumline b.over{color:#d62027}
.es-sum{width:100%;margin-top:12px;border-collapse:collapse;font-size:12px}
.es-sum th,.es-sum td{padding:7px 9px;border-bottom:1px solid #e5ecf6;text-align:left}
.es-sum th{font-size:10px;letter-spacing:1px;color:#6b7890}
.es-sum td.pt{color:#157347;font-weight:900}.es-sum td small{display:inline;font-size:10px}
.es-sum tfoot td{border-bottom:0;font-size:14px;font-weight:900}

/* rummy */
.rm-opp{display:flex;align-items:center;gap:10px}
.rm-melds{display:grid;gap:8px;margin:10px 0}
.rm-lane{min-height:62px;padding:6px 8px;border-radius:12px;background:rgba(0,0,0,.18)}
.melds{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.r-meld{display:inline-flex;align-items:center;padding:4px;border-radius:10px;background:rgba(255,255,255,.1)}
.r-meld .pcard{width:34px;height:48px;margin-left:-8px}.r-meld .pcard:first-child{margin-left:0}
.r-meld .pcard b{top:2px;left:3px;font-size:11px}.r-meld .pcard i{top:13px;left:3px;font-size:9px}.r-meld .pcard em{padding-top:6px;font-size:17px}
.r-add{flex:none;width:30px;height:30px;margin-left:6px;border:0;border-radius:50%;background:#ffd54a;color:#4a3500;font-size:18px;font-weight:900;animation:arcPulseBtn 1.2s ease-in-out infinite}
.rm-piles{display:flex;justify-content:center;gap:26px;margin-top:6px}
.pile{display:grid;justify-items:center;gap:4px;padding:0;border:0;background:none;color:#fff}
.pile small{font-size:10px;font-weight:800;letter-spacing:0;color:#cfeedd}
.pile:not(:disabled) .pcard{box-shadow:0 0 0 3px #ffd54a,0 4px 10px rgba(0,0,0,.4)}

/* Wi-Fi notices + reconnect banner */
.wifi-toast{position:fixed;left:50%;bottom:calc(18px + var(--sab));z-index:60;max-width:min(92vw,420px);padding:11px 16px;border-radius:14px;background:#10213b;color:#fff;font-size:13px;font-weight:700;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.35);opacity:0;pointer-events:none;transform:translate(-50%,30px);transition:opacity .25s,transform .25s}
.wifi-toast.show{opacity:1;transform:translate(-50%,0)}
.wifi-resume{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;border:1px solid #bcd7fb;border-radius:16px;background:#eef5ff}
.wifi-resume>span{font-size:22px}.wifi-resume>div{flex:1;min-width:0}
.wifi-resume strong{display:block;margin:0;font-size:13px}.wifi-resume small{display:block;margin-top:2px;font-size:11px;letter-spacing:0;color:#5e6f88}
.wifi-resume button{min-height:36px;padding:7px 12px;border:0;border-radius:11px;background:#0b3d91;color:#fff;font-size:12px;font-weight:850}
.wifi-resume button#dropWifi{width:36px;padding:0;background:#dce4ef;color:#27456d}

@keyframes arcPulse{0%,100%{box-shadow:0 0 0 3px rgba(25,118,210,.18)}50%{box-shadow:0 0 0 6px rgba(25,118,210,.32)}}
@keyframes arcPulseBtn{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@keyframes arcBounce{0%{transform:translateY(-14px) scale(.4);opacity:0}60%{transform:translateY(3px) scale(1.2)}100%{transform:none;opacity:1}}
@keyframes arcDeal{from{opacity:0;transform:translateY(-34px) rotate(-8deg) scale(.8)}}
@keyframes arcPop{0%{transform:scale(.6);opacity:.2}60%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}
@keyframes arcFlip{from{transform:rotateY(90deg) scale(.9)}to{transform:none}}
@media(max-width:420px){.arc-bar{gap:6px}.arc-chip{padding:7px 8px;gap:7px}.pcard{width:46px;height:66px}.pcard em{font-size:24px}.scard{width:52px;height:76px}.dtile{width:58px;height:31px}.stop-list li{grid-template-columns:38% 1fr}.stop-letter{width:58px;height:58px;font-size:36px}}
@media(prefers-reduced-motion:reduce){.arc *,.arc *::before,.arc *::after{animation:none!important;transition:none!important}}
/* 0.2.13 layout polish */
.fan.hand>.cardbtn{margin-left:-8px}.fan.hand>.cardbtn:first-child{margin-left:0}
.pk-row.me .fan{margin-bottom:24px}
.es-opp{margin-bottom:16px}

/* 0.2.14 install / update banner (iPhone "add to home screen" hint, Android install, new-version notice) */
.pwa-banner{position:fixed;left:10px;right:10px;bottom:calc(10px + var(--sab));z-index:70;display:flex;align-items:center;gap:10px;max-width:460px;margin:0 auto;padding:10px 12px;border-radius:16px;background:#10213b;color:#fff;box-shadow:0 12px 34px rgba(0,0,0,.35);animation:arcDeal .35s ease-out}
.pwa-banner .pwa-ico{flex:none;font-size:24px}
.pwa-banner .pwa-txt{flex:1;min-width:0;display:grid;gap:2px}
.pwa-banner .pwa-txt b{font-size:13px;font-weight:850}
.pwa-banner .pwa-txt span{font-size:11.5px;line-height:1.35;color:#c5d3ea;font-weight:600}
.pwa-banner button{flex:none;border:0;border-radius:11px;min-height:36px;font-weight:850;font-size:12px}
.pwa-banner .pwa-act{padding:0 14px;background:#ffd54a;color:#4a3500}
.pwa-banner .pwa-x{width:34px;background:rgba(255,255,255,.14);color:#fff}
.wifi-room-code{letter-spacing:2px}
.wifi-lobby #shareInvite{margin:10px auto 4px}
@media(prefers-reduced-motion:reduce){.pwa-banner{animation:none}}

/* ===== 0.2.16 ===== */
/* Sudoku notes: green like the player's numbers; blue only for the number selected on the board */
.note.on{color:var(--user)}
.note.match{color:#0054d6;background:#d7eaff;border-radius:3px}

/* iPhone home-screen app: keep the top of every screen below the status bar / notch */
.home-screen{padding-top:var(--sat)}
.mini-games-screen{padding-top:calc(24px + var(--sat))}
@media(max-width:560px){.mini-games-screen{padding-top:calc(16px + var(--sat))}}

/* End of a two-player game: one invisible full-screen button so the tap works anywhere (iPhone ignores taps on plain areas) */
.win-tap-catcher{position:fixed;inset:0;z-index:39;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}

/* Install guide (opened from the banner) */
.pwa-banner.pwa-tap .pwa-ico,.pwa-banner.pwa-tap .pwa-txt{cursor:pointer}
.pwa-guide{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:calc(12px + var(--sat)) 12px calc(12px + var(--sab));background:rgba(5,18,36,.74)}
.pg-card{position:relative;width:min(430px,100%);max-height:100%;overflow-y:auto;padding:20px 16px 16px;border-radius:22px;background:#fff;color:#10213b;box-shadow:0 20px 70px rgba(0,0,0,.35)}
.pg-x{position:absolute;top:10px;right:10px;width:36px;height:36px;border:0;border-radius:50%;background:#edf3fb;color:#10213b;font-size:15px;font-weight:900}
.pg-kicker{margin:0 44px 4px 0;color:#d62027;font-size:9px;font-weight:900;letter-spacing:1.6px}
.pg-card h2{margin:0 44px 12px 0;font-size:19px;line-height:1.2}
.pg-card ol{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.pg-card li{display:grid;grid-template-columns:132px 1fr;gap:11px;align-items:center;padding:8px;border:1px solid #e3eaf3;border-radius:15px;background:#f7fafe}
.pg-copy{display:grid;gap:3px;min-width:0}
.pg-copy b{display:block;font-size:13px;font-weight:850;line-height:1.25}
.pg-copy em{display:inline-grid;place-items:center;width:19px;height:19px;margin-right:6px;border-radius:50%;background:#0b3d91;color:#fff;font-size:11px;font-style:normal;vertical-align:1px}
.pg-copy span{font-size:11.5px;line-height:1.4;color:#5b6b83;font-weight:600}
.pg-pic{height:92px;display:grid;align-items:center;padding:7px;border-radius:11px;background:#dfe6f0;overflow:hidden;font-size:9px;font-weight:700;color:#3b4a61}
.pg-pic svg{width:15px;height:15px;display:block}
.pg-pic img{display:block;border-radius:22%}
.pg-hot{outline:2px solid #ffb300;outline-offset:1px;background:#fff6cf!important;color:#0a58d0!important;animation:pg-pulse 1.3s ease-in-out infinite alternate}
@keyframes pg-pulse{from{outline-color:#ffd54a}to{outline-color:#ff8f00}}
.pg-bar{align-self:end;display:flex;justify-content:space-between;align-items:center;padding:6px 7px;border-radius:9px;background:#fff;color:#0a58d0}
.pg-bar i{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;font-style:normal;font-size:13px}
.pg-sheet{display:grid;gap:3px}
.pg-sheet span{display:flex;justify-content:space-between;align-items:center;gap:4px;padding:5px 6px;border-radius:6px;background:#fff;line-height:1.15}
.pg-sheet i{flex:none}
.pg-add{align-self:start;display:grid;gap:8px}
.pg-addbar{display:flex;justify-content:space-between;align-items:center;gap:3px;font-size:8px}
.pg-addbar b{font-weight:850;color:#10213b}
.pg-addbar span{padding:3px 4px;border-radius:5px;color:#0a58d0}
.pg-app{display:flex;align-items:center;gap:6px;padding:5px;border-radius:8px;background:#fff}
.pg-app img{width:26px;height:26px}
.pg-home{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;justify-items:center;align-content:center}
.pg-home i,.pg-home span{width:22px;height:22px;border-radius:6px;background:#b9c5d6}
.pg-home span{padding:0;background:none!important}
.pg-home img{width:22px;height:22px}
.pg-done{width:100%;min-height:44px;margin-top:12px;border:0;border-radius:12px;background:#0b3d91;color:#fff;font-weight:850;font-size:14px}
@media(max-width:360px){.pg-card li{grid-template-columns:112px 1fr}}
@media(prefers-reduced-motion:reduce){.pg-hot{animation:none}}

/* ===== 0.2.19 ===== */
/* Light / dark button (added by js/theme.js to the three top bars) */
.theme-toggle{flex:none;width:38px;height:38px;display:grid;place-items:center;padding:0;border:1px solid #dce4ef;border-radius:12px;background:#ffffffd9;font-size:17px;line-height:1;box-shadow:0 4px 13px #183b6709}
.theme-toggle.icon-btn{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.14);box-shadow:none;border-radius:10px}
.theme-toggle:focus-visible{outline:3px solid #1976d2;outline-offset:2px}
.home-topbar .theme-toggle{margin-left:auto}
@media(max-width:560px){.theme-toggle{width:34px;height:34px;font-size:15px}.theme-toggle.icon-btn{width:32px;height:32px}}
@media(max-width:430px){.home-topbar .dom-chip{display:none}}

/* "Otros juegos": every card shows a drawing of its game */
.game-card.has-art{position:relative;isolation:isolate;min-height:190px;justify-content:flex-end;overflow:hidden;padding:14px;border:0;background:#10213b;color:#fff;box-shadow:0 10px 24px #10213b2e}
.game-card.has-art:hover{box-shadow:0 16px 32px #10213b45}
.gc-art{position:absolute;inset:0;z-index:-2}
.gc-art svg{display:block;width:100%;height:100%;transition:transform .35s ease}
.game-card.has-art:hover .gc-art svg{transform:scale(1.06)}
.game-card.has-art::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,18,36,0) 22%,rgba(8,18,36,.72) 58%,rgba(8,18,36,.95) 100%)}
.game-card.has-art>span{position:absolute;top:10px;left:10px;width:36px;height:36px;margin:0;border-radius:12px;background:rgba(255,255,255,.92);font-size:19px;box-shadow:0 3px 9px #0000003d}
.game-card.has-art strong{font-size:16px;text-shadow:0 1px 3px #000a}
.game-card.has-art small{margin-top:3px;color:#d5deec;font-size:10.5px;line-height:1.3;text-shadow:0 1px 2px #000a}
.game-card.has-art>b{margin-top:9px;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.16);color:#fff;font-size:11px;align-items:center}
@media(max-width:700px){.game-card.has-art{min-height:170px}}
@media(max-width:480px){.game-card.has-art{min-height:158px;padding:11px}.game-card.has-art>span{width:32px;height:32px;margin:0;font-size:17px}.game-card.has-art strong{font-size:14px}.game-card.has-art small{font-size:9.5px}.game-card.has-art>b{margin-top:7px;padding:6px 8px}}
@media(prefers-reduced-motion:reduce){.gc-art svg{transition:none}}

/* ---------- Dark mode: only colours change, never sizes or layout ---------- */
html[data-theme="dark"]{color-scheme:dark;--ink:#e6edf7;--muted:#93a3ba;--line:#2b3a52;--soft:#16233a;--cell:#16233a;--given:#e6edf7;--user:#4cd08a;--bad:#ff6b6f;--note:#8fa2bd}
html[data-theme="dark"],html[data-theme="dark"] body{background:linear-gradient(145deg,#0b1424,#0f1b30);color:var(--ink)}
/* sudoku screen */
html[data-theme="dark"] .statsbar>div,html[data-theme="dark"] .game-shell,html[data-theme="dark"] .num-btn,html[data-theme="dark"] .erase-key,html[data-theme="dark"] .tool,html[data-theme="dark"] .help,html[data-theme="dark"] .modal-card{background:#16233a;border-color:#2b3a52;color:var(--ink)}
html[data-theme="dark"] .help summary{color:var(--ink)}
html[data-theme="dark"] .top-actions select{background:#16233a;color:var(--ink)}
html[data-theme="dark"] .board{border-color:#7187a8;background:#3a4a63}
html[data-theme="dark"] .cell{border-color:#2b3a52}
html[data-theme="dark"] .cell.box-right{border-right-color:#7187a8}
html[data-theme="dark"] .cell.box-bottom{border-bottom-color:#7187a8}
html[data-theme="dark"] .cell.related{background:#1c2d49}
html[data-theme="dark"] .cell.selected,html[data-theme="dark"] .cell.given.selected,html[data-theme="dark"] .cell.selected.same{background:#24589c!important}
html[data-theme="dark"] .cell.same{color:#7fb8ff!important;background:#1d3a63}
html[data-theme="dark"] .cell.selected.same{color:#a8d0ff!important}
html[data-theme="dark"] .cell.wrong,html[data-theme="dark"] .cell.selected.wrong{color:var(--bad)!important}
html[data-theme="dark"] .note.match{color:#a8d0ff;background:#24589c}
html[data-theme="dark"] .num-btn.exhausted{background:#0f1829;color:#55647b}
html[data-theme="dark"] .tool.active{background:#1d3a63;color:#8fc4ff;border-color:#2f5a94}
html[data-theme="dark"] .modal-card p{color:var(--muted)}
html[data-theme="dark"] .modal-actions .secondary-action{background:#22344f;color:var(--ink)}
/* home */
html[data-theme="dark"] .home-screen{--home-ink:#e6edf7;background:radial-gradient(ellipse at 78% 8%,#17294a 0,#0f1b30 45%,#0b1424 100%)}
html[data-theme="dark"] .home-logo,html[data-theme="dark"] .welcome-hero h1,html[data-theme="dark"] .section-heading h2{color:#e6edf7}
html[data-theme="dark"] .logo-word strong,html[data-theme="dark"] .welcome-hero h1 em{color:#7fb0ff}
html[data-theme="dark"] .logo-word small,html[data-theme="dark"] .hero-description,html[data-theme="dark"] .home-kicker,html[data-theme="dark"] .section-note,html[data-theme="dark"] .option-copy small{color:#93a3ba}
html[data-theme="dark"] .dom-chip,html[data-theme="dark"] .home-menu-trigger,html[data-theme="dark"] .theme-toggle:not(.icon-btn),html[data-theme="dark"] .games-back{background:#16233a;border-color:#2b3a52;color:#cfdcee}
html[data-theme="dark"] .home-menu-trigger>span:first-child,html[data-theme="dark"] .games-back{color:#8fc4ff}
html[data-theme="dark"] .welcome-hero{border-color:#2b3a52;background:linear-gradient(115deg,#16233a 0%,#182a47 55%,#1c3357 100%);box-shadow:0 16px 44px #0006}
html[data-theme="dark"] .art-glow{background:radial-gradient(circle,#2a4a80 0%,#2a4a8055 45%,transparent 72%)}
html[data-theme="dark"] .home-option,html[data-theme="dark"] .home-menu .home-option{background:#16233a;border-color:#2b3a52;color:#e6edf7}
html[data-theme="dark"] .home-option:hover{background:#1b2b45;border-color:#3d5273}
html[data-theme="dark"] .option-icon,html[data-theme="dark"] .dropdown-option>span,html[data-theme="dark"] .mode-game-icon,html[data-theme="dark"] .games-brand-mark,html[data-theme="dark"] .difficulty-number,html[data-theme="dark"] .resume-choice-icon{background:#22344f}
html[data-theme="dark"] .dev-badge,html[data-theme="dark"] .dropdown-option small{background:#22344f;color:#9fb0c8}
html[data-theme="dark"] .home-footer{border-top-color:#2b3a52;color:#7f90a8}
html[data-theme="dark"] .home-dropdown{background:#16233a;border-color:#2b3a52;box-shadow:0 18px 48px #000a}
html[data-theme="dark"] .dropdown-option{color:#dbe6f5}
html[data-theme="dark"] .dropdown-option:hover,html[data-theme="dark"] .dropdown-option:focus-visible{background:#22344f}
html[data-theme="dark"] .difficulty-dialog h2{color:#e6edf7}
html[data-theme="dark"] .picker-close{background:#22344f;color:#b9c8dc}
html[data-theme="dark"] .picker-description{color:#93a3ba!important}
html[data-theme="dark"] .difficulty-choice,html[data-theme="dark"] .resume-choice,html[data-theme="dark"] .resume-choice:first-child{background:#1b2b45;border-color:#33466a;color:#e6edf7}
html[data-theme="dark"] .difficulty-number,html[data-theme="dark"] .resume-choice-icon{color:#8fc4ff}
html[data-theme="dark"] .difficulty-copy small{color:#93a3ba}
html[data-theme="dark"] .picker-back{color:#9fb0c8}
html[data-theme="dark"] .picker-back:hover{background:#22344f;color:#fff}
/* "Otros juegos" */
html[data-theme="dark"] .mini-games-screen{background:radial-gradient(ellipse at 50% 0,#17294a 0,#0f1b30 55%,#0b1424 100%);color:#e6edf7}
html[data-theme="dark"] .mini-games-header{border-bottom-color:#2b3a52}
html[data-theme="dark"] .games-intro,html[data-theme="dark"] .board-hint,html[data-theme="dark"] .mini-game-head small,html[data-theme="dark"] .pass-device p,html[data-theme="dark"] .mode-choices small,html[data-theme="dark"] .wifi-lobby p,html[data-theme="dark"] .wifi-lobby label{color:#93a3ba}
html[data-theme="dark"] .game-card:not(.has-art){background:#16233a;border-color:#2b3a52;color:#e6edf7}
html[data-theme="dark"] .mini-game,html[data-theme="dark"] .mode-picker,html[data-theme="dark"] .game-end-card{background:#16233a;border-color:#2b3a52;color:#e6edf7;box-shadow:0 12px 32px #0007}
html[data-theme="dark"] .mini-game-head h2,html[data-theme="dark"] .game-end-card h3{color:#e6edf7}
html[data-theme="dark"] .game-end-card>strong,html[data-theme="dark"] .wifi-room-code,html[data-theme="dark"] .mine-clock b,html[data-theme="dark"] .match-score b{color:#8fc4ff}
html[data-theme="dark"] .game-restart,html[data-theme="dark"] .mini-tool,html[data-theme="dark"] .mode-choices button,html[data-theme="dark"] .game-end-card button,html[data-theme="dark"] .ship-choice,html[data-theme="dark"] .captured-tray,html[data-theme="dark"] .mine-clock,html[data-theme="dark"] .match-score,html[data-theme="dark"] .turn-indicator{background:#1b2b45;border-color:#33466a;color:#dbe6f5}
html[data-theme="dark"] .mode-choices button:hover{background:#22344f;border-color:#4a6594}
html[data-theme="dark"] .game-end-card button:first-child{background:#1f5fc4;border-color:#1f5fc4;color:#fff}
html[data-theme="dark"] .mini-tool.on,html[data-theme="dark"] .ship-choice.selected{background:#1d3a63;border-color:#3f79bd;color:#a8d0ff}
html[data-theme="dark"] .match-score span,html[data-theme="dark"] .ship-choice small,html[data-theme="dark"] .fleet-battle h3,html[data-theme="dark"] .fleet-boards h3{color:#9fb0c8}
html[data-theme="dark"] .match-score b{background:#0f1829}
html[data-theme="dark"] .mine-grid{background:#3a4a63}
html[data-theme="dark"] .mine-cell{background:#2a3b57;color:#8fc4ff;box-shadow:inset 0 -3px 0 #1c2a41}
html[data-theme="dark"] .mine-cell:hover:not(:disabled){background:#34496c}
html[data-theme="dark"] .mine-cell.revealed{background:#0f1829;box-shadow:none}
html[data-theme="dark"] .mine-cell.mine-hit{background:#6b1f27}
html[data-theme="dark"] .ttt-board{background:#0f1829}
html[data-theme="dark"] .ttt-cell{background:#1b2b45;border-color:#33466a;color:#7fb0ff}
html[data-theme="dark"] .ttt-cell.mark-o{color:#ff6b6f}
html[data-theme="dark"] .hit-feedback{background:#4a1a20;color:#ff9aa0}
html[data-theme="dark"] .miss-feedback{background:#1b2b45;color:#a9bdd6}
html[data-theme="dark"] .wifi-lobby input{background:#0f1829;border-color:#33466a;color:#e6edf7}
html[data-theme="dark"] .wifi-lobby .secondary-action{background:#22344f;color:#dbe6f5}
html[data-theme="dark"] .wifi-resume{background:#1b2b45;border-color:#33466a}
html[data-theme="dark"] .wifi-resume small{color:#9fb0c8}
html[data-theme="dark"] .wifi-resume button#dropWifi{background:#22344f;color:#dbe6f5}
html[data-theme="dark"] .victory-awaiting{background:#3a2f10;border-color:#7a6220;color:#ffe08a}
/* arcade games (cards and tiles keep their own colours) */
html[data-theme="dark"] .arc-chip{background:#1b2b45;border-color:#33466a}
html[data-theme="dark"] .arc-chip.turn{background:#22344f}
html[data-theme="dark"] .arc-chip.won{background:#3a2f10;border-color:#f0b429}
html[data-theme="dark"] .arc-chip small,html[data-theme="dark"] .arc-sub,html[data-theme="dark"] .stop-timer,html[data-theme="dark"] .stop-votes .q,html[data-theme="dark"] .stop-table th,html[data-theme="dark"] .es-sum th{color:#9fb0c8}
html[data-theme="dark"] .arc-felt .arc-sub,html[data-theme="dark"] .arc-curtain .arc-sub{color:#cfeedd}
html[data-theme="dark"] .arc-msg{background:#1b2b45;color:#cfe0f7}
html[data-theme="dark"] .arc-curtain .arc-msg{background:rgba(255,255,255,.12);color:#e7efff}
html[data-theme="dark"] .arc-wait{background:#3a2f10;border-color:#7a6220;color:#ffe08a}
html[data-theme="dark"] .arc-btn.alt{background:#22344f;color:#dbe6f5;box-shadow:0 4px 0 #101b2e}
html[data-theme="dark"] .d-side,html[data-theme="dark"] .es-score,html[data-theme="dark"] .stop-list label{color:#cfe0f7}
html[data-theme="dark"] .dd{background:#cfd9e8}
html[data-theme="dark"] .dedge::after{background:#33466a}
html[data-theme="dark"] .dedge:not(:disabled):hover::after{background:#5f7fae}
html[data-theme="dark"] .dedge.on.p0::after{background:var(--p0)}
html[data-theme="dark"] .dedge.on.p1::after{background:var(--p1)}
html[data-theme="dark"] .stop-timer b{color:#e6edf7}
html[data-theme="dark"] .stop-timer .bar{background:#22344f}
html[data-theme="dark"] .arc .stop-list input{background:#0f1829;border-color:#33466a;color:#e6edf7}
html[data-theme="dark"] .stop-votes li{background:#1b2b45;border-color:#33466a}
html[data-theme="dark"] .stop-votes li.good{background:#143524;border-color:#2a7a4d}
html[data-theme="dark"] .stop-votes li.bad{background:#451b20;border-color:#8a3239}
html[data-theme="dark"] .stop-votes li.no{background:#3a2f10;border-color:#7a6220}
html[data-theme="dark"] .stop-table th,html[data-theme="dark"] .stop-table td,html[data-theme="dark"] .es-sum th,html[data-theme="dark"] .es-sum td{border-bottom-color:#2b3a52}
html[data-theme="dark"] .stop-table td.pts,html[data-theme="dark"] .es-sum td.pt{color:#4cd08a}
/* install guide */
html[data-theme="dark"] .pg-card{background:#16233a;color:#e6edf7}
html[data-theme="dark"] .pg-card li{background:#1b2b45;border-color:#33466a}
html[data-theme="dark"] .pg-copy span{color:#9fb0c8}
html[data-theme="dark"] .pg-x{background:#22344f;color:#e6edf7}

/* ===== 0.2.20 — DOS (js/dos-game.js). Everything is scoped under .dos ===== */
.dos small{margin:0;letter-spacing:0}
.dos-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}
.dos-head p{margin:0 0 4px;color:#d62027;font-size:9px;font-weight:900;letter-spacing:1.6px}
.dos-head h2{margin:0;font-size:24px;letter-spacing:1px}
.dos-actions{display:flex;gap:6px}
.dos-actions #dosRules{width:36px;justify-content:center;font-size:15px}
/* cards */
.dcard{position:relative;display:block;flex:none;width:54px;height:80px;border:3px solid #fff;border-radius:10px;color:#fff;font-weight:900;box-shadow:0 3px 8px rgba(0,0,0,.35);overflow:hidden;user-select:none}
.dcard::before{content:"";position:absolute;inset:14px 5px;border-radius:50%;background:rgba(255,255,255,.2);transform:rotate(28deg)}
.dcard b{position:absolute;top:3px;left:5px;font-size:11px;line-height:1}
.dcard em{position:absolute;inset:0;display:grid;place-items:center;font-style:normal;font-size:30px;line-height:1;text-shadow:0 2px 0 rgba(0,0,0,.28)}
.dcard small{position:absolute;left:0;right:0;bottom:3px;display:block;color:#fff;font-size:7.5px;font-weight:900;text-align:center;text-transform:uppercase;line-height:1}
.dcard.c-r{background:#d62027}.dcard.c-b{background:#1761b2}.dcard.c-g{background:#1c8a4a}.dcard.c-y{background:#e2a400}
.dcard.c-k{background:#1b1f2a}
.dcard.c-k::before{background:conic-gradient(#d62027 0 25%,#e2a400 0 50%,#1c8a4a 0 75%,#1761b2 0);opacity:.55}
/* 0.2.21: Parry is the multicolour card */
.dcard.v-parry{background:conic-gradient(from 45deg,#d62027 0 25%,#e2a400 0 50%,#1c8a4a 0 75%,#1761b2 0)}
.dcard.v-parry::before{background:rgba(16,33,59,.82);opacity:1}
.dcard.v-parry small{text-shadow:0 1px 2px #000}
.dcard.v-d2 em,.dcard.v-d4 em,.dcard.v-super em{font-size:24px}
.dcard.v-skip em,.dcard.v-rev em{font-size:32px}
.dcard.back{background:repeating-linear-gradient(45deg,#2a1b4d 0 6px,#3c2a6e 6px 12px)}
.dcard.back::before{background:rgba(255,255,255,.14)}
.dcard.glow{box-shadow:0 0 0 3px #ffd54a,0 0 16px #ffd54a}
/* table */
.dos-opps{display:grid;gap:7px;margin-bottom:9px}
.dos-opps.n3{grid-template-columns:1fr 1fr}.dos-opps.n4{grid-template-columns:1fr 1fr 1fr}
.dos-opp{display:grid;gap:3px;justify-items:center;min-width:0;padding:7px 6px;border:2px solid #dce4ef;border-radius:13px;background:#f6f9fd;text-align:center}
.dos-opp b{max-width:100%;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.dos-opp em{font-style:normal;font-size:10px;font-weight:800;color:#5e6f88}
.dos-opp.turn{border-color:#1976d2;background:#fff;animation:arcPulse 1.6s ease-in-out infinite}
.dos-opp.hit{border-color:#e0b84a}
.dos-backs{display:flex;justify-content:center;min-height:20px}
.dos-backs i{width:13px;height:19px;margin-left:-5px;border:1.5px solid #fff;border-radius:3px;background:#3c2a6e;box-shadow:0 1px 2px #0005}
.dos-backs i:first-child{margin-left:0}
.dos-table{display:flex;align-items:center;justify-content:center;gap:16px;padding:14px 10px;border-radius:18px;color:#fff;background:radial-gradient(ellipse at 50% 25%,#21915f,#145a3c);box-shadow:inset 0 0 0 4px #0d3b27,inset 0 10px 34px rgba(0,0,0,.35)}
.dos-pile{display:grid;justify-items:center;gap:4px;padding:0;border:0;background:none;color:#fff;touch-action:manipulation}
.dos-pile small{color:#cfeedd;font-size:10px;font-weight:800}
.dos-pile:disabled{cursor:default}
.dos-top .dcard{width:68px;height:100px}.dos-top .dcard em{font-size:38px}.dos-top .dcard b{font-size:13px}.dos-top .dcard small{font-size:9px;bottom:5px}
.dos-info{display:grid;justify-items:center;gap:3px;min-width:62px;font-size:12px}
.dos-info small{color:#cfeedd;font-size:10px;font-weight:800}
.dos-dot{width:26px;height:26px;border:3px solid #fff;border-radius:50%}
.dos-dot.c-r,.dos-colors .c-r{background:#d62027}.dos-dot.c-b,.dos-colors .c-b{background:#1761b2}.dos-dot.c-g,.dos-colors .c-g{background:#1c8a4a}.dos-dot.c-y,.dos-colors .c-y{background:#e2a400}
.dos-turn{width:fit-content;margin:9px auto 5px;padding:5px 14px;border-radius:999px;background:#edf3fb;color:#27456d;font-size:12px;font-weight:900}
.dos-turn.mine{background:#0b3d91;color:#fff}
.dos-log{display:grid;gap:1px;min-height:58px;margin:0 0 6px;padding:6px 10px;border-radius:11px;background:#f3f6fb;list-style:none;color:#6b7b92;font-size:11px;font-weight:650;line-height:1.35}
.dos-log li:last-child{color:#10213b;font-weight:800}
.dos-prompt{margin:6px 0;padding:10px;border:2px solid #f0b429;border-radius:14px;background:#fff8dc;text-align:center}
.dos-prompt p{margin:0 0 8px;color:#5a4300;font-size:13px;font-weight:700}
.dos-prompt>div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.dos-hand{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:10px 0 4px}
.dos-cardbtn{position:relative;padding:0;border:0;border-radius:10px;background:none;touch-action:manipulation;transition:transform .12s}
.dos-cardbtn:disabled{cursor:default;opacity:.5}
.dos-hand.idle .dos-cardbtn:disabled{opacity:.82}
.dos-cardbtn.ok{transform:translateY(-6px)}
.dos-cardbtn.ok .dcard{box-shadow:0 0 0 3px #ffd54a,0 5px 12px rgba(0,0,0,.35)}
.dos-cardbtn.locked{opacity:.6}
.dos-cardbtn u{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-18deg);padding:2px 5px;border-radius:6px;background:#10213b;color:#fff;font-size:8px;font-weight:900;text-decoration:none;white-space:nowrap}
.dos-count{font-size:11px;font-weight:800;color:#6b7b92}
/* panels over the table */
.dos-over{position:fixed;inset:0;z-index:45;display:grid;place-items:center;padding:16px;background:#091a30b8}
.dos-card{width:min(420px,100%);max-height:100%;overflow-y:auto;padding:20px 18px;border-radius:22px;background:#fff;color:#10213b;text-align:center;box-shadow:0 24px 80px #07172b66}
.dos-card h3{margin:0 0 12px;font-size:22px}
.dos-kicker{margin:0 0 6px;color:#d62027;font-size:9px;font-weight:900;letter-spacing:1.6px}
.dos-card dl{margin:0 0 14px;text-align:left}
.dos-card dt{margin-top:9px;font-size:13px;font-weight:900}
.dos-card dd{margin:2px 0 0;color:#5b6b83;font-size:12px;line-height:1.45}
.dos-colors{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}
.dos-colors button{min-height:58px;border:3px solid #fff;border-radius:14px;color:#fff;font-size:15px;font-weight:900;box-shadow:0 3px 8px #0003}
.dos-endbtns{display:grid;gap:8px}
/* menu + waiting room */
.dos-name{display:grid;gap:5px;margin:0 0 12px;color:#5b6b83;font-size:11px;font-weight:800}
.dos input{width:100%;min-height:44px;padding:8px 12px;border:2px solid #d6e0ee;border-radius:12px;background:#fff;color:#10213b;font-size:16px;font-weight:700}
.dos-menu{display:grid;gap:9px}
.dos-opt{display:grid;gap:4px;padding:14px;border:1px solid #dce4ef;border-radius:15px;background:#fff;color:#203653;text-align:left}
.dos-opt b{font-size:14px}.dos-opt>span{color:#7c8ba0;font-size:11px;font-weight:600}
button.dos-opt:hover{border-color:#9fb9dc;background:#f8fbff}
.dos-sizes,.dos-join{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.dos-sizes .arc-btn{flex:1;padding-inline:8px}
.dos-join input{flex:1;min-width:120px;text-align:center;letter-spacing:3px;text-transform:uppercase}
.dos-room{display:grid;justify-items:center;gap:5px;margin-bottom:12px;padding:12px;border-radius:15px;background:#eef5ff}
.dos-room span{color:#5e6f88;font-size:11px;font-weight:800}
.dos-room strong{margin:0;color:#0b3d91;font-size:30px;letter-spacing:3px}
.dos-seats{display:grid;gap:7px;margin:0 0 8px;padding:0;list-style:none}
.dos-seats li{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;padding:9px 11px;border:2px solid #dce4ef;border-radius:13px;background:#f6f9fd}
.dos-seats li i{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#0b3d91;color:#fff;font-style:normal;font-weight:900}
.dos-seats li b{font-size:13px}.dos-seats li span{color:#5e6f88;font-size:10px;font-weight:800}
.dos-seats li.open{border-style:dashed;background:transparent}.dos-seats li.open i{background:#b9c5d6}.dos-seats li.open b{color:#8a97a8;font-weight:700}
@media(max-width:480px){.dcard{width:48px;height:72px}.dcard em{font-size:26px}.dos-table{gap:10px;padding:12px 6px}.dos-hand{gap:4px}.dos-opps.n4{gap:5px}.dos-opp{padding:6px 3px}.dos-opp b{font-size:11px}}
@media(prefers-reduced-motion:reduce){.dos-opp.turn{animation:none}.dos-cardbtn{transition:none}}
html[data-theme="dark"] .dos-opp,html[data-theme="dark"] .dos-seats li{background:#1b2b45;border-color:#33466a}
html[data-theme="dark"] .dos-opp.turn{background:#22344f;border-color:#4a90e2}
html[data-theme="dark"] .dos-seats li.open{background:transparent}
html[data-theme="dark"] .dos-opp em,html[data-theme="dark"] .dos-seats li span,html[data-theme="dark"] .dos-count,html[data-theme="dark"] .dos-name,html[data-theme="dark"] .dos-opt>span,html[data-theme="dark"] .dos-card dd,html[data-theme="dark"] .dos-room span{color:#9fb0c8}
html[data-theme="dark"] .dos-turn{background:#22344f;color:#dbe6f5}
html[data-theme="dark"] .dos-turn.mine{background:#1f5fc4;color:#fff}
html[data-theme="dark"] .dos-log{background:#0f1829;color:#93a3ba}
html[data-theme="dark"] .dos-log li:last-child{color:#e6edf7}
html[data-theme="dark"] .dos-card,html[data-theme="dark"] .dos-opt{background:#16233a;border-color:#2b3a52;color:#e6edf7}
html[data-theme="dark"] button.dos-opt:hover{background:#1b2b45;border-color:#4a6594}
html[data-theme="dark"] .dos input{background:#0f1829;border-color:#33466a;color:#e6edf7}
html[data-theme="dark"] .dos-room{background:#1b2b45}
html[data-theme="dark"] .dos-room strong{color:#8fc4ff}
html[data-theme="dark"] .dos-prompt{background:#3a2f10;border-color:#7a6220}
html[data-theme="dark"] .dos-prompt p{color:#ffe08a}

/* ===== 0.2.22 — DOS: shinier cards, animations and effects (classes are added by renderGame only when something changed) ===== */
.dcard::after{content:"";position:absolute;inset:0;border-radius:7px;background:linear-gradient(135deg,rgba(255,255,255,.34) 0%,rgba(255,255,255,0) 42%,rgba(0,0,0,.16) 100%);pointer-events:none}
.dcard em{z-index:1}.dcard b,.dcard small{z-index:1}
.dos-cardbtn.ok:hover{transform:translateY(-11px)}
.dos-cardbtn.ok:active{transform:translateY(-2px) scale(.96)}
.dos-table{position:relative;overflow:hidden}
.dos-opp{position:relative}
/* cards arriving in the hand, one after another */
.dos-cardbtn.dealt{animation:dosDeal .42s cubic-bezier(.2,.8,.3,1.2) backwards;animation-delay:calc(var(--k,0)*45ms)}
@keyframes dosDeal{from{opacity:0;transform:translateY(46px) rotate(-10deg) scale(.7)}}
/* Tornado: the whole hand spins in */
.dos-cardbtn.whirl{animation:dosWhirl .9s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--k,0)*40ms)}
@keyframes dosWhirl{from{opacity:0;transform:translate(0,-70px) rotate(720deg) scale(.2)}60%{opacity:1}}
/* the card that was just played lands on the pile */
.dos-top .dcard.drop{animation:dosDrop .45s cubic-bezier(.2,.8,.3,1.25)}
@keyframes dosDrop{from{opacity:0;transform:translateY(-70px) rotate(-22deg) scale(1.5)}}
.dos-dot.ping{animation:dosPing .7s ease-out}
@keyframes dosPing{0%{transform:scale(.4);box-shadow:0 0 0 0 rgba(255,255,255,.9)}60%{transform:scale(1.35)}100%{transform:scale(1);box-shadow:0 0 0 16px rgba(255,255,255,0)}}
/* players who receive cards shake and show +N */
.dos-opp.grew{animation:dosShake .5s ease-in-out}
.dos-opp.shrank{animation:dosNod .35s ease-out}
@keyframes dosShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px) rotate(-2deg)}40%{transform:translateX(6px) rotate(2deg)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
@keyframes dosNod{50%{transform:scale(1.06)}}
.dos-opp s{position:absolute;top:-9px;right:-4px;z-index:2;padding:2px 7px;border-radius:10px;background:#d62027;color:#fff;font-size:12px;font-weight:900;text-decoration:none;box-shadow:0 2px 6px #0005;animation:dosBubble 1.6s ease-out forwards}
@keyframes dosBubble{0%{opacity:0;transform:translateY(8px) scale(.5)}15%{opacity:1;transform:translateY(0) scale(1.2)}30%{transform:scale(1)}80%{opacity:1}100%{opacity:0;transform:translateY(-12px)}}
/* big banner over the table for action cards */
.dos-fx{position:absolute;inset:0;z-index:3;display:grid;place-content:center;justify-items:center;gap:2px;pointer-events:none;color:#fff;text-shadow:0 3px 10px #000b;animation:dosFx 1.35s ease-out forwards}
.dos-fx span{font-size:54px;font-weight:900;line-height:1}
.dos-fx b{font-size:20px;font-weight:900;letter-spacing:1px}
@keyframes dosFx{0%{opacity:0;transform:scale(.3)}18%{opacity:1;transform:scale(1.18)}30%{transform:scale(1)}75%{opacity:1}100%{opacity:0;transform:scale(1.25)}}
.dos-fx.fx-tornado span{animation:dosSpin 1.2s linear}
.dos-fx.fx-rewind span{animation:dosBack 1.2s ease-in-out}
.dos-fx.fx-rev span{animation:dosSpin .9s ease-in-out reverse}
.dos-fx.fx-parry span{animation:dosGuard .9s ease-out}
@keyframes dosSpin{to{transform:rotate(720deg)}}
@keyframes dosBack{0%{transform:translateX(40px)}50%{transform:translateX(-40px)}100%{transform:translateX(0)}}
@keyframes dosGuard{0%{transform:scale(2.2)}40%{transform:scale(.9)}70%{transform:scale(1.15)}100%{transform:scale(1)}}
/* the felt flashes with the colour of the effect */
.dos-table[class*="fx-"]::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;animation:dosFlash 1.1s ease-out forwards}
.dos-table.fx-d2::after,.dos-table.fx-d4::after,.dos-table.fx-super::after{background:radial-gradient(circle,#ff3b47aa,#ff3b4700 70%)}
.dos-table.fx-skip::after,.dos-table.fx-rev::after{background:radial-gradient(circle,#ffd54aaa,#ffd54a00 70%)}
.dos-table.fx-rewind::after{background:repeating-linear-gradient(90deg,#8fc4ff55 0 14px,#8fc4ff00 14px 28px)}
.dos-table.fx-tornado::after{background:conic-gradient(from 0deg,#ffffff00,#ffffff66,#ffffff00,#ffffff66,#ffffff00);animation:dosFlash 1.1s ease-out forwards,dosSpin 1.1s linear}
.dos-table.fx-parry::after{background:radial-gradient(circle,#7fd4ffbb,#7fd4ff00 65%)}
.dos-table.fx-wild::after{background:conic-gradient(#d6202766,#e2a40066,#1c8a4a66,#1761b266,#d6202766)}
@keyframes dosFlash{0%{opacity:0}20%{opacity:1}100%{opacity:0}}
/* end of the game */
.dos-over.pop .dos-card{animation:end-pop .35s cubic-bezier(.2,.8,.3,1.3)}
.dos-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.dos-confetti i{position:absolute;top:-14px;width:9px;height:14px;border-radius:2px;animation:dosConfetti 2.4s linear forwards}
@keyframes dosConfetti{to{transform:translateY(105vh) rotate(720deg)}}
@media(prefers-reduced-motion:reduce){.dos-cardbtn.dealt,.dos-cardbtn.whirl,.dos-top .dcard.drop,.dos-dot.ping,.dos-opp.grew,.dos-opp.shrank,.dos-fx span,.dos-over.pop .dos-card{animation:none}.dos-fx,.dos-table[class*="fx-"]::after,.dos-confetti{display:none}}
/* ===== 0.2.23 — DOS round-table view (overrides the earlier flat layout; rules/animations untouched) ===== */
.dos-room2{margin:0 -6px 10px;padding:8px 8px 12px;border-radius:22px;color:#fff;background:radial-gradient(ellipse at 50% 30%,#6a35d8 0%,#3d1a94 48%,#1e0c52 100%);box-shadow:inset 0 0 0 3px #8f6bff40,inset 0 -30px 60px #0000004d,0 10px 26px #1e0c5240}
.dos-arena{position:relative;height:clamp(318px,43vh,400px)}
.dos-arena::before{content:"";position:absolute;left:50%;top:54%;width:min(96%,440px);aspect-ratio:1.5;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,#7d4df0 0%,#5127c4 62%,#35148f 100%);box-shadow:0 0 0 6px #2b1173,0 0 0 9px #a98bff55,0 18px 40px #0007}
/* centre: pile + played card inside the arrows */
.dos-table{position:absolute;left:50%;top:54%;width:206px;height:206px;margin:-103px 0 0 -103px;display:flex;align-items:center;justify-content:center;gap:10px;padding:0;border-radius:50%;background:radial-gradient(circle,#ffffff14 0%,#ffffff00 70%);box-shadow:none;overflow:visible}
.dos-ring{position:absolute;inset:0;width:100%;height:100%;animation:dosTurnRing 9s linear infinite;filter:drop-shadow(0 2px 3px #0006);transition:color .3s}
.dos-ring.rev{scale:-1 1}   /* 0.3.36: el espejo YA invierte el giro; antes ademas se invertia la animacion y las flechas giraban al reves de a donde apuntaban */
.dos-ring.c-r{color:#ff4d57}.dos-ring.c-b{color:#4d9bff}.dos-ring.c-g{color:#3fd27c}.dos-ring.c-y{color:#ffcb2e}
@keyframes dosTurnRing{to{transform:rotate(360deg)}}
.dos-table .dos-pile,.dos-table .dos-top{position:relative;z-index:1}
.dos-table .dos-pile .dcard{width:46px;height:68px;box-shadow:3px 3px 0 #1a0b47,5px 5px 0 #2a1470,0 6px 12px #0007}
.dos-table .dos-pile small{color:#e3d8ff}
.dos-top .dcard{width:66px;height:98px;transform:rotate(-5deg)}
.dos-info{position:absolute;left:50%;top:calc(54% + 108px);transform:translateX(-50%);display:flex;align-items:center;gap:6px;min-width:0;padding:3px 10px 3px 4px;border-radius:999px;background:#12063a99;font-size:11px}
.dos-info .dos-dot{width:16px;height:16px;border-width:2px}
.dos-arena .dos-turn{position:absolute;left:0;right:0;bottom:0;width:max-content;max-width:90%;margin:0 auto;background:#12063acc;color:#e3d8ff;white-space:nowrap}
.dos-arena .dos-turn.mine{background:#ffd54a;color:#3a2a00;animation:arcPulseBtn 1.2s ease-in-out infinite}
/* players around the table */
.dos-arena .dos-opp{position:absolute;display:grid;justify-items:center;gap:2px;width:84px;padding:0;border:0;border-radius:0;background:none;color:#fff;animation:none}
.dos-opp.pos-top{top:2px;left:0;right:0;margin:0 auto}
.dos-opp.pos-left{left:0;top:50%;margin-top:-58px}
.dos-opp.pos-right{right:0;top:50%;margin-top:-58px}
.dos-arena .dos-opp.grew{animation:dosShake .5s ease-in-out}
.dos-arena .dos-opp.shrank{animation:dosNod .35s ease-out}
.dos-av{position:relative;display:grid;place-items:center;width:46px;height:46px;border:3px solid #fff;border-radius:50%;background:#2b1173;font-size:24px;line-height:1;box-shadow:0 4px 10px #0006}
.dos-av i{position:absolute;right:-8px;bottom:-5px;min-width:21px;height:21px;display:grid;place-items:center;padding:0 4px;border:2px solid #fff;border-radius:11px;background:#10213b;color:#fff;font-size:11px;font-style:normal;font-weight:900}
.s0 .dos-av{background:#ff7a3d}.s1 .dos-av{background:#3d8bff}.s2 .dos-av{background:#2fb86a}.s3 .dos-av{background:#c266ff}
.dos-opp.turn .dos-av,.dos-me.turn .dos-av{border-color:#ffd54a;box-shadow:0 0 0 4px #ffd54a66,0 0 18px #ffd54a;animation:dosGlow 1.2s ease-in-out infinite alternate}
@keyframes dosGlow{to{box-shadow:0 0 0 7px #ffd54a40,0 0 26px #ffd54a}}
.dos-opp.hit .dos-av{border-color:#ff4d57}
.dos-arena .dos-opp b{max-width:84px;padding:2px 8px;overflow:hidden;border-radius:9px;background:#12063acc;color:#fff;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.dos-arena .dos-backs{min-height:26px;margin-top:1px}
.dos-arena .dos-backs i{width:16px;height:24px;margin-left:-9px;border:1.5px solid #fff;border-radius:3px;background:repeating-linear-gradient(45deg,#2a1b4d 0 3px,#4a3590 3px 6px);transform-origin:50% 120%}
.dos-arena .dos-backs i:first-child{margin-left:0}
.dos-arena .dos-backs i:nth-child(1){transform:rotate(-20deg)}.dos-arena .dos-backs i:nth-child(2){transform:rotate(-12deg)}.dos-arena .dos-backs i:nth-child(3){transform:rotate(-4deg)}.dos-arena .dos-backs i:nth-child(4){transform:rotate(4deg)}.dos-arena .dos-backs i:nth-child(5){transform:rotate(12deg)}.dos-arena .dos-backs i:nth-child(6){transform:rotate(20deg)}
/* you */
.dos-me{display:flex;align-items:center;gap:12px;margin:8px 4px 0}
.dos-me>b{flex:1;min-width:0;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.dos-mebtns{display:flex;gap:7px}
.dos-mebtns .arc-btn{min-height:40px;padding:7px 14px}
.dos-mebtns #dosDraw2{background:#e5303c;box-shadow:0 4px 0 #8f121b}
.dos-mebtns #dosDraw2:active:not(:disabled){box-shadow:0 1px 0 #8f121b}
.dos-mebtns .arc-btn.alt{background:#ffffff26;color:#fff;box-shadow:0 4px 0 #0000004d}
.dos-room2 .dos-prompt{margin:10px 2px 0}
/* your hand, fanned */
.dos-room2 .dos-hand{gap:0;padding:20px 6px 6px;row-gap:8px}
.dos-room2 .dos-cardbtn{margin-left:clamp(-40px,calc((100% - 66px)/(var(--n) - 1) - 58px),-6px);transform:rotate(var(--a,0deg)) translateY(calc(var(--y,0px) + var(--lift,0px)));transform-origin:50% 100%}
.dos-room2 .dos-cardbtn:first-child{margin-left:0}
.dos-room2 .dos-hand.many .dos-cardbtn{margin-left:-28px}
.dos-room2 .dos-hand .dcard{width:58px;height:86px}.dos-room2 .dos-hand .dcard em{font-size:32px}
.dos-room2 .dos-cardbtn.ok{--lift:-12px;z-index:1}
.dos-room2 .dos-cardbtn.ok:hover{--lift:-20px;z-index:2}
.dos-room2 .dos-cardbtn.ok:active{--lift:-4px}
.dos-room2 .dos-cardbtn:disabled{opacity:1;filter:brightness(.62) saturate(.8)}
.dos-room2 .dos-hand.idle .dos-cardbtn:disabled{opacity:1;filter:brightness(.85)}
@media(max-width:400px){.dos-table{width:186px;height:186px;margin:-93px 0 0 -93px}.dos-top .dcard{width:60px;height:89px}.dos-info{top:calc(54% + 97px)}.dos-arena .dos-opp{width:70px}.dos-arena .dos-opp b{max-width:70px;font-size:10px}.dos-av{width:40px;height:40px;font-size:21px}}
@media(min-width:700px){.dos-arena{height:440px}.dos-table{width:236px;height:236px;margin:-118px 0 0 -118px}.dos-info{top:calc(54% + 124px)}.dos-opp.pos-left{left:5%}.dos-opp.pos-right{right:5%}}
@media(prefers-reduced-motion:reduce){.dos-ring,.dos-opp.turn .dos-av,.dos-me.turn .dos-av,.dos-arena .dos-turn.mine{animation:none}}
/* ===== 0.2.24 — DOS: up to 8 players around the table, Tornado draft ===== */
.dos-arena .dos-opp{--w:84px;--h:98px;left:calc((100% - var(--w))*var(--fx,.5));top:calc((100% - var(--h) - 30px)*var(--fy,0));right:auto;width:var(--w);margin:0}
.dos-arena.compact .dos-opp{--w:62px;--h:62px}
.dos-arena.compact .dos-backs{display:none}
.dos-arena.compact .dos-av{width:36px;height:36px;font-size:19px;border-width:2px}
.dos-arena.compact .dos-av i{min-width:19px;height:19px;font-size:10px;right:-9px}
.dos-arena.compact .dos-opp b{max-width:62px;padding:1px 5px;font-size:9.5px}
.dos-arena.compact .dos-table{width:170px;height:170px;margin:-85px 0 0 -85px}
.dos-arena.compact .dos-top .dcard{width:56px;height:83px}
.dos-arena.compact .dos-table .dos-pile .dcard{width:40px;height:59px}
.dos-arena.compact .dos-info{top:calc(54% + 88px)}
.s4 .dos-av{background:#17b8a6}.s5 .dos-av{background:#e0a100}.s6 .dos-av{background:#ff5fa2}.s7 .dos-av{background:#7a8cff}
@media(max-width:400px){.dos-arena .dos-opp{--w:72px}.dos-arena.compact .dos-opp{--w:56px}.dos-arena.compact .dos-opp b{max-width:56px}}
@media(min-width:700px){.dos-arena.compact .dos-table{width:210px;height:210px;margin:-105px 0 0 -105px}.dos-arena.compact .dos-info{top:calc(54% + 110px)}}
.dos input[type=number]{flex:0 0 96px;min-width:0;text-align:center;letter-spacing:0;font-size:20px;font-weight:900}
/* Tornado: cards in the middle */
.dos-over.late{animation:dosLate .35s 1.15s backwards}
@keyframes dosLate{from{opacity:0}}
.dos-draft{width:min(520px,100%)}
.dos-pool{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;max-height:44vh;overflow-y:auto;margin:10px 0;padding:10px 4px;border-radius:14px;background:radial-gradient(ellipse at 50% 20%,#6a35d8,#2a1173)}
.dos-poolbtn{padding:0;border:0;border-radius:9px;background:none;touch-action:manipulation;transition:transform .12s}
.dos-poolbtn .dcard{width:46px;height:68px}.dos-poolbtn .dcard em{font-size:25px}.dos-poolbtn .dcard small{font-size:6.5px}
.dos-poolbtn:not(:disabled):hover{transform:translateY(-5px) scale(1.06)}
.dos-poolbtn:not(:disabled) .dcard{box-shadow:0 0 0 2px #ffd54a,0 4px 9px #0006}
.dos-pool.idle .dos-poolbtn{cursor:default;filter:brightness(.72)}
.dos-mine{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:4px}
.dos-mine .dcard{width:34px;height:50px;border-width:2px;border-radius:7px}.dos-mine .dcard em{font-size:18px}.dos-mine .dcard b,.dos-mine .dcard small{display:none}
@media(prefers-reduced-motion:reduce){.dos-over.late{animation:none}.dos-poolbtn{transition:none}}
/* ===== 0.2.25 — player profile (js/profile.js) ===== */
.prof-chip{flex:none;display:flex;align-items:center;gap:6px;max-width:150px;height:38px;padding:0 11px 0 5px;border:1px solid #dce4ef;border-radius:999px;background:#ffffffd9;color:#203653;font-size:12px;font-weight:850;box-shadow:0 4px 13px #183b6709}
.prof-chip span{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#eef4ff;font-size:17px;line-height:1}
.prof-chip b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-topbar .prof-chip{margin-left:auto}
.home-topbar .prof-chip+.theme-toggle{margin-left:0}
.mini-games-header .prof-chip{margin-left:auto}
@media(max-width:560px){.prof-chip{height:34px;max-width:46px;padding:0 3px}.prof-chip b{display:none}.prof-chip span{width:27px;height:27px}}
.prof-hello{margin:0 0 6px;color:#0b3d91;font-size:14px;font-weight:700}.prof-hello:empty{display:none}
.prof-over{position:fixed;inset:0;z-index:9100;/* 0.3.64: era 85 y quedaba DETRÁS de las pestañas Perfil y Amigos (z-index 9000) */display:grid;place-items:center;padding:calc(14px + var(--sat)) 14px calc(14px + var(--sab));background:rgba(5,18,36,.74)}
.prof-card{position:relative;width:min(420px,100%);max-height:100%;overflow-y:auto;padding:22px 18px 18px;border-radius:22px;background:#fff;color:#10213b;box-shadow:0 20px 70px rgba(0,0,0,.35)}
.prof-x{position:absolute;top:10px;right:10px;width:36px;height:36px;border:0;border-radius:50%;background:#edf3fb;color:#10213b;font-size:15px;font-weight:900}
.prof-kicker{margin:0 0 4px;color:#d62027;font-size:9px;font-weight:900;letter-spacing:1.6px}
.prof-card h2{margin:0 44px 8px 0;font-size:22px}
.prof-reason{margin:0 0 10px;padding:8px 10px;border-radius:11px;background:#fff8dc;color:#6b5000;font-size:12px;font-weight:700}
.prof-preview{display:flex;align-items:center;gap:12px;margin:6px 0 14px;padding:10px;border-radius:15px;background:linear-gradient(110deg,#0b3d91,#5127c4);color:#fff}
.prof-big{display:grid;place-items:center;width:54px;height:54px;border:3px solid #fff;border-radius:50%;background:#ffffff26;font-size:30px;line-height:1}
.prof-preview b{min-width:0;overflow:hidden;font-size:18px;text-overflow:ellipsis;white-space:nowrap}
.prof-label{display:block;margin:10px 0 6px;color:#3c4f69;font-size:12px;font-weight:850}
.prof-label small{display:inline;color:#8592a6;font-size:10px;font-weight:600;letter-spacing:0}
.prof-card input{width:100%;min-height:46px;padding:8px 12px;border:2px solid #d6e0ee;border-radius:12px;background:#fff;color:#10213b;font-size:17px;font-weight:700}
.prof-card input:focus{outline:0;border-color:#1976d2;box-shadow:0 0 0 3px rgba(25,118,210,.2)}
.prof-avatars{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}
.prof-avatars button{aspect-ratio:1;padding:0;border:2px solid transparent;border-radius:12px;background:#f1f5fb;font-size:22px;line-height:1}
.prof-avatars button.on{border-color:#1976d2;background:#e5f1ff;box-shadow:0 0 0 3px #1976d233}
.prof-err{min-height:16px;margin:8px 0 0;color:#d62027;font-size:12px;font-weight:700}
.prof-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.prof-actions button{min-height:46px;border:0;border-radius:12px;font-size:14px;font-weight:850}
.prof-save{background:#0b3d91;color:#fff}.prof-cancel{background:#edf3fb;color:#27456d}
@media(max-width:380px){.prof-avatars{grid-template-columns:repeat(6,1fr)}}
/* 0.3.69: brazo del otro jugador llevando la ficha en la Mesa 3D (flyTile en js/domino-3d.js) */
.d3-rarm{position:absolute;inset:0;z-index:7;width:100%;height:100%;overflow:visible;pointer-events:none}.d3-rarm path{fill:none;stroke:#111;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.d3-rhand{position:absolute;z-index:8;width:20px;height:20px;margin:-10px 0 0 -10px;border:4px solid #111;border-radius:50%;background:#fff;pointer-events:none}.d3-rhand .d3-held{width:34px}
.prof-avatars .prof-sub{grid-column:1/-1;margin:6px 0 0;font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;opacity:.65}.prof-avatars .prof-sub:first-child{margin-top:0}
/* names in two-player online games */
.vs-bar{display:flex;align-items:center;justify-content:center;gap:10px;margin:-6px 0 12px;padding:7px 10px;border-radius:13px;background:#eef5ff;font-size:12px;font-weight:850;color:#27456d}
.vs-bar span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vs-bar span.me{color:#0b3d91}
.vs-bar small{display:inline;font-size:10px;color:#7c8ba0;letter-spacing:0}
.vs-bar i{flex:none;padding:2px 7px;border-radius:8px;background:#d62027;color:#fff;font-size:9px;font-style:normal;font-weight:900}
/* DOS menu: profile card */
.dos-profile{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;border-radius:15px;background:linear-gradient(110deg,#0b3d91,#5127c4);color:#fff}
.dos-profile>span{display:grid;place-items:center;width:44px;height:44px;flex:none;border:2px solid #fff;border-radius:50%;background:#ffffff26;font-size:24px}
.dos-profile>div{flex:1;min-width:0;display:grid;gap:2px}
.dos-profile b{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}
.dos-profile small{display:block;color:#dbe6ff;font-size:10.5px;font-weight:600}
.dos-profile .arc-btn.alt{min-height:38px;padding:6px 12px;background:#ffffff26;color:#fff;box-shadow:0 3px 0 #00000040}
.dos-seats li i{font-size:16px}
html[data-theme="dark"] .prof-chip{background:#16233a;border-color:#2b3a52;color:#dbe6f5}
html[data-theme="dark"] .prof-chip span{background:#22344f}
html[data-theme="dark"] .prof-hello{color:#8fc4ff}
html[data-theme="dark"] .prof-card{background:#16233a;color:#e6edf7}
html[data-theme="dark"] .prof-x,html[data-theme="dark"] .prof-cancel{background:#22344f;color:#dbe6f5}
html[data-theme="dark"] .prof-label{color:#c5d3ea}
html[data-theme="dark"] .prof-card input{background:#0f1829;border-color:#33466a;color:#e6edf7}
html[data-theme="dark"] .prof-avatars button{background:#22344f}
html[data-theme="dark"] .prof-avatars button.on{background:#1d3a63;border-color:#4a90e2}
html[data-theme="dark"] .prof-reason{background:#3a2f10;color:#ffe08a}
html[data-theme="dark"] .vs-bar{background:#1b2b45;color:#cfe0f7}
html[data-theme="dark"] .vs-bar span.me{color:#8fc4ff}
/* 0.2.26 — Tornado: face-down cards in the middle; the card you just took glows in "Tus cartas" */
.dos-poolbtn .dcard.back::before{background:rgba(255,255,255,.14)}
.dos-mine .dcard.got{box-shadow:0 0 0 3px #ffd54a,0 0 12px #ffd54a;animation:dosDeal .4s cubic-bezier(.2,.8,.3,1.2)}
@media(prefers-reduced-motion:reduce){.dos-mine .dcard.got{animation:none}}
/* 0.2.27 — DOS: +2/+4 stacking total next to the colour */
.dos-stack{margin-left:4px;padding:1px 7px;border-radius:9px;background:#e5303c;color:#fff;font-size:12px;font-style:normal;font-weight:900;animation:arcPulseBtn 1s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.dos-stack{animation:none}}
/* ===== 0.2.29 — STOP for 1–8 players (js/stop-party.js); reuses the DOS menu/lobby styles and the old STOP letter/timer ===== */
.sp-round{margin:-6px 0 8px;color:#7c8ba0;font-size:11px;font-weight:800;text-align:center}
.sp-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin:8px 0}
.sp-chips span{display:inline-flex;align-items:center;gap:4px;max-width:132px;padding:3px 9px 3px 3px;overflow:hidden;border:1px solid #dce4ef;border-radius:999px;background:#f6f9fd;color:#3c4f69;font-size:11px;font-weight:800;white-space:nowrap;text-overflow:ellipsis}
.sp-chips span i{display:grid;place-items:center;width:22px;height:22px;flex:none;border-radius:50%;background:#e8eef8;font-style:normal;font-size:13px}
.sp-chips span.ok{border-color:#9fd8b6;background:#ecf9f1;color:#1c7a4a}
.sp-chips span.me{box-shadow:0 0 0 2px #1976d255}
.sp-vote{display:grid;gap:10px;margin:8px 0}
.sp-vote section,.sp-detail section{padding:9px;border:1px solid #dce4ef;border-radius:14px;background:#f8fbff}
.sp-vote h4,.sp-detail h4{margin:0 0 6px;color:#27456d;font-size:12px;letter-spacing:.3px}
.sp-ans{width:100%;display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:7px;margin-top:4px;padding:6px 8px;border:2px solid #dce4ef;border-radius:11px;background:#fff;color:#10213b;text-align:left}
.sp-ans i{font-style:normal;font-size:17px}
.sp-ans b{min-width:0;overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}
.sp-ans em{font-style:normal;font-size:10px;font-weight:800;color:#b3262c;white-space:nowrap}
.sp-ans:not(:disabled):hover{border-color:#9fb9dc}
.sp-ans.no{border-color:#e5303c;background:#fdeeee}.sp-ans.no b{text-decoration:line-through;color:#b3262c}
.sp-ans.no::after{content:"❌";font-size:13px}
.sp-ans.bad b,.sp-ans.empty b{color:#9aa7ba;text-decoration:line-through}
.sp-ans.empty b{text-decoration:none}
.sp-ans:disabled{cursor:default}
.sp-rank{display:grid;gap:6px;margin:10px 0;padding:0;list-style:none}
.sp-rank li{display:grid;grid-template-columns:28px 30px 1fr auto auto;align-items:center;gap:8px;padding:8px 10px;border:2px solid #dce4ef;border-radius:13px;background:#f6f9fd}
.sp-rank li:first-child{border-color:#f0b429;background:#fff8dc}
.sp-rank li.me{box-shadow:0 0 0 2px #1976d244}
.sp-rank span{font-weight:900;text-align:center}.sp-rank i{font-style:normal;font-size:20px}
.sp-rank b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.sp-rank em{font-style:normal;color:#157347;font-size:12px;font-weight:900}
.sp-rank strong{margin:0;min-width:42px;padding:3px 8px;border-radius:9px;background:#0b3d91;color:#fff;font-size:14px;text-align:center}
.sp-detail{margin:8px 0}.sp-detail summary{cursor:pointer;color:#0b3d91;font-size:13px;font-weight:850;padding:6px 0}
.sp-detail section{margin-top:8px}
.sp-detail p{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:6px;margin:3px 0;font-size:13px}
.sp-detail p i{font-style:normal}.sp-detail p b{font-size:12px}.sp-detail .pts{color:#157347}.sp-detail .zero{color:#9aa7ba}
html[data-theme="dark"] .sp-chips span{background:#1b2b45;border-color:#33466a;color:#cfe0f7}
html[data-theme="dark"] .sp-chips span i{background:#22344f}
html[data-theme="dark"] .sp-chips span.ok{background:#143524;border-color:#2a7a4d;color:#7fe0a8}
html[data-theme="dark"] .sp-vote section,html[data-theme="dark"] .sp-detail section,html[data-theme="dark"] .sp-rank li{background:#1b2b45;border-color:#33466a}
html[data-theme="dark"] .sp-vote h4,html[data-theme="dark"] .sp-detail h4{color:#cfe0f7}
html[data-theme="dark"] .sp-ans{background:#0f1829;border-color:#33466a;color:#e6edf7}
html[data-theme="dark"] .sp-ans.no{background:#451b20;border-color:#8a3239}
html[data-theme="dark"] .sp-rank li:first-child{background:#3a2f10;border-color:#7a6220}
html[data-theme="dark"] .sp-detail summary{color:#8fc4ff}
/* ===== 0.2.30 — Minesweeper difficulties ===== */
.mine-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:4px}
.mode-choices .mine-levels button{display:grid;justify-items:center;gap:2px;padding:9px 4px;border:2px solid #dce4ef;border-radius:12px;background:#f7faff;text-align:center}
.mine-levels b{font-size:13px}.mine-levels small{font-size:9.5px;color:#7c8ba0;font-weight:700;letter-spacing:0}
.mode-choices .mine-levels button.on{border-color:#1976d2;background:#e5f1ff;box-shadow:0 0 0 3px #1976d222}
.mine-grid{grid-template-columns:repeat(var(--mn,9),minmax(0,1fr))!important;grid-template-rows:repeat(var(--mn,9),minmax(0,1fr))!important}
.mine-grid{width:min(100%,450px)!important;height:auto!important;aspect-ratio:1}
.mine-grid.big{width:min(100%,560px)!important;gap:2px;padding:4px}
.mine-grid.big .mine-cell{border-radius:3px;font-size:clamp(9px,2.4vw,15px);box-shadow:inset 0 -2px 0 #c3cfdd}
@media(max-width:480px){.mine-levels{grid-template-columns:repeat(2,minmax(0,1fr))}}
html[data-theme="dark"] .mode-choices .mine-levels button{background:#1b2b45;border-color:#33466a}
html[data-theme="dark"] .mode-choices .mine-levels button.on{background:#1d3a63;border-color:#4a90e2}
html[data-theme="dark"] .mine-grid.big .mine-cell{box-shadow:inset 0 -2px 0 #1c2a41}
/* ===== 0.2.31 — home screen: game-hub look (only the home screen; the sudoku board is untouched) ===== */
html .home-screen{background:radial-gradient(ellipse 60% 40% at 90% 0,#dbe7ff 0,transparent 70%),radial-gradient(ellipse 50% 35% at 0 30%,#ffe3e5 0,transparent 70%),linear-gradient(#f7f9fd,#eaf0f8)}
html .home-screen:before{height:8px;background:linear-gradient(90deg,#0b3d91 0 33.33%,#fff 33.33% 66.66%,#d62027 66.66%)}
html .home-topbar{position:sticky;top:0;z-index:11;margin:0 -30px 18px;padding:12px 30px;background:#f7f9fdcc;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
html .home-logo .logo-sudoku{box-shadow:0 4px 12px #0b3d913d}
html .home-logo .logo-word strong{background:linear-gradient(95deg,#0b3d91 55%,#d62027);-webkit-background-clip:text;background-clip:text;color:transparent}
html .dom-chip{border-color:#f1c9cc;background:#fff;color:#a51c24}
/* hero */
html .home-screen .welcome-hero{min-height:300px;border:0;border-radius:30px;background:radial-gradient(circle at 85% 20%,var(--h4,#2a6ee0) 0,transparent 45%),linear-gradient(125deg,var(--h1,#07276b) 0%,var(--h2,#0b3d91) 55%,var(--h3,#1554b9) 100%);box-shadow:0 22px 48px #0b3d9150}
html .home-screen .welcome-hero:before{content:"";position:absolute;inset:0;opacity:.07;background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:44px 44px;pointer-events:none}
html .home-screen .welcome-hero:after{width:100%;height:7px;right:auto;left:0;top:auto;bottom:0;background:linear-gradient(90deg,#d62027 0 33.33%,#fff 33.33% 66.66%,#d62027 66.66%)}
html .home-screen .welcome-hero h1{color:#fff}
html .home-screen .welcome-hero h1 em{color:#ffd9dc}
html .home-screen .home-kicker{color:#cfe0ff}
html .home-screen .home-kicker span{background:#ff4b55;box-shadow:0 0 0 4px #ff4b5533}
html .home-screen .hero-description{color:#d6e3fb}
html .home-screen .play-button{background:#fff;color:#0b3d91;box-shadow:0 12px 26px #00000040}
html .home-screen .play-button:hover{box-shadow:0 16px 32px #00000050}
html .home-screen .play-button small{color:#6c7a8e}
html .home-screen .play-icon{background:#d62027;color:#fff}
html .home-screen .play-chevron{color:#d62027}
html .home-screen .play-button-secondary{background:#ffffff1f;border:1px solid #ffffff55;color:#fff;box-shadow:none}
html .home-screen .play-button-secondary small{color:#d6e3fb}
html .home-screen .play-button-secondary .play-icon{background:#ffffff2e;color:#fff}
html .home-screen .art-glow{background:radial-gradient(circle,#4f8cf0aa 0%,#4f8cf055 45%,transparent 72%)}
html .home-screen .hero-sudoku{border-color:#ffffffcc;box-shadow:0 20px 44px #00000050}
html .home-screen .floating-number{border:0;box-shadow:0 10px 24px #00000040}
html .home-screen .floating-star{color:#ff8a92}
/* games row */
.section-link{display:flex;align-items:center;gap:4px;padding:8px 12px;border:1px solid #dce4ef;border-radius:999px;background:#fff;color:#0b3d91;font-size:11px;font-weight:850;white-space:nowrap}
.section-link span{font-size:16px;line-height:1}
.section-link:hover{border-color:#aebfd7}
.home-games{display:flex;gap:12px;margin:0 -2px 14px;padding:2px 2px 12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.home-games::-webkit-scrollbar{display:none}
.home-game{flex:0 0 min(158px,44vw);min-height:196px;scroll-snap-align:start;margin:0}
.home-game:first-child{flex-basis:min(188px,52vw)}
.home-game:first-child::before{content:"NUEVO";position:absolute;top:12px;right:10px;padding:3px 7px;border-radius:7px;background:#d62027;color:#fff;font-size:8px;font-weight:900;letter-spacing:1px}
.home-game-all{align-items:flex-start;justify-content:flex-end;border:2px dashed #b5c7e4!important;background:#ffffffb0!important;color:#0b3d91!important;box-shadow:none!important}
.home-game-all>span{position:static!important;width:44px!important;height:44px!important;margin-bottom:auto!important;background:#e5efff!important;font-size:22px!important}
.home-game-all strong{font-size:15px;text-shadow:none!important}
.home-game-all small{color:#6e7d93!important;text-shadow:none!important}
.home-game-all>b{margin-top:8px;padding:0;background:none;color:#0b3d91}
.home-game-all::after{display:none}
.soon-row{grid-template-columns:repeat(3,minmax(0,1fr))}
.soon-row .home-option{min-height:64px;padding:10px 12px;border-style:dashed;background:#ffffff99;box-shadow:none}
.soon-row .option-icon{width:36px;height:36px;flex-basis:36px;font-size:18px}
.soon-row .dev-badge:before{content:""}
@media(min-width:820px){.home-games{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}.home-game,.home-game:first-child{flex:none;min-height:190px}}
@media(max-width:820px){html .home-topbar{margin-inline:-20px;padding-inline:20px}}
@media(max-width:560px){html .home-topbar{margin:0 -13px 12px;padding:9px 13px}.soon-row{grid-template-columns:1fr}.soon-row .home-option{min-height:56px}html .home-screen .welcome-hero{border-radius:24px;padding:24px 20px 24px}}
@media(max-width:370px){html .home-topbar{margin-inline:-10px;padding-inline:10px}}
/* dark mode: the hero is already dark in both themes, only the surroundings change */
html[data-theme="dark"] .home-screen{background:radial-gradient(ellipse 60% 40% at 90% 0,#1a3563 0,transparent 70%),radial-gradient(ellipse 50% 35% at 0 30%,#3a1a2a 0,transparent 70%),linear-gradient(#0f1b30,#0b1424)}
html[data-theme="dark"] .home-topbar{background:#0f1b30cc}
html[data-theme="dark"] .dom-chip{border-color:#4a2a36;background:#2a1a24;color:#ffb3b8}
html[data-theme="dark"] .home-logo .logo-word strong{background:linear-gradient(95deg,#7fb0ff 55%,#ff7b83);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-theme="dark"] .section-link{background:#16233a;border-color:#2b3a52;color:#8fc4ff}
html[data-theme="dark"] .home-game-all{border-color:#33466a!important;background:#16233a99!important;color:#8fc4ff!important}
html[data-theme="dark"] .home-game-all>span{background:#22344f!important}
html[data-theme="dark"] .home-game-all>b{color:#8fc4ff}
html[data-theme="dark"] .home-game-all small{color:#93a3ba!important}
html[data-theme="dark"] .soon-row .home-option{background:#16233a99}
html[data-theme="dark"] .welcome-hero{background:radial-gradient(circle at 85% 20%,var(--h4,#2a6ee0) 0,transparent 45%),linear-gradient(125deg,var(--h1,#07276b) 0%,var(--h2,#0b3d91) 55%,var(--h3,#1554b9) 100%)}
/* ===== 0.2.32 - Sudoku del dia + Personalizar ===== */
.daily-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px}
.daily-stats div{padding:11px 6px;border:1px solid #dce4ef;border-radius:13px;background:#f5f8fd;text-align:center}
.daily-stats small{display:block;color:#7e8ba0;font-size:8px;font-weight:900;letter-spacing:1px}
.daily-stats strong{display:block;margin-top:5px;color:#0b3d91;font-size:16px}
.daily-note{margin:0 0 12px!important;padding:9px 11px;border-radius:11px;background:#fff6df;color:#7a5a12!important;font-size:12px;text-align:left}
.daily-note.ok{background:#e7f7ee;color:#17623b!important}
.daily-play{width:100%}
.home-daily.daily-done{border-color:#9fd8b8;background:#f1fbf5}
.home-daily.daily-done .dev-badge{background:#d9f2e3;color:#17623b}
.home-daily:not(.daily-done) .dev-badge{background:#fff0f1;color:#c52232}
.cust-group{margin:0 0 15px;text-align:left}
.cust-group h3{margin:0 0 7px;color:#62738c;font-size:10px;font-weight:900;letter-spacing:1.3px;text-transform:uppercase}
.cust-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;padding:4px;border-radius:13px;background:#edf3fb}
.cust-seg button{padding:10px 8px;border:0;border-radius:10px;background:transparent;color:#4b5d78;font-size:12px;font-weight:850}
.cust-seg button.on{background:#fff;color:#0b3d91;box-shadow:0 2px 8px #183b6722}
.cust-swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.cust-swatches button{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 2px;border:2px solid transparent;border-radius:13px;background:transparent;color:#4b5d78;font-size:9px;font-weight:800}
.cust-swatches i{width:38px;height:38px;border-radius:50%;box-shadow:0 3px 9px #0003}
.cust-swatches button.on{border-color:#0b3d91;background:#f2f6fc}
.cust-reset{color:#a51c24!important}
html[data-theme="dark"] .daily-stats div{background:#1b2b45;border-color:#33466a}
html[data-theme="dark"] .daily-stats strong{color:#8fc4ff}
html[data-theme="dark"] .daily-note{background:#3a2f12;color:#f0cf7a!important}
html[data-theme="dark"] .daily-note.ok{background:#12372a;color:#7fe0ae!important}
html[data-theme="dark"] .home-daily.daily-done{border-color:#2c6b4c;background:#14291f}
html[data-theme="dark"] .home-daily.daily-done .dev-badge{background:#1d4a35;color:#7fe0ae}
html[data-theme="dark"] .home-daily:not(.daily-done) .dev-badge{background:#3a1f28;color:#ff9aa1}
html[data-theme="dark"] .cust-group h3{color:#93a3ba}
html[data-theme="dark"] .cust-seg{background:#1b2b45}
html[data-theme="dark"] .cust-seg button{color:#b9c8dc}
html[data-theme="dark"] .cust-seg button.on{background:#2b4468;color:#fff}
html[data-theme="dark"] .cust-swatches button{color:#b9c8dc}
html[data-theme="dark"] .cust-swatches button.on{border-color:#8fc4ff;background:#1b2b45}
html[data-theme="dark"] .cust-reset{color:#ff9aa1!important}
/* accent colours: --blue drives the sudoku top bar, buttons and links; --h1..--h4 the home hero */
html[data-accent="oceano"]{--blue:#0a5c8f;--blue2:#0e86b8;--h1:#053a5c;--h2:#0a5c8f;--h3:#0e86b8;--h4:#25a9dd}
html[data-accent="esmeralda"]{--blue:#0d6b4f;--blue2:#16a077;--h1:#064432;--h2:#0d6b4f;--h3:#16a077;--h4:#2fc794}
html[data-accent="atardecer"]{--blue:#a8341a;--blue2:#e0701f;--h1:#6e1f0b;--h2:#a8341a;--h3:#d9621c;--h4:#f59a3d}
html[data-accent="morado"]{--blue:#4b2a9a;--blue2:#7a4fd6;--h1:#2d1665;--h2:#4b2a9a;--h3:#6a42c4;--h4:#9672ee}
html[data-accent]:not([data-accent="dominicano"]) .logo-word strong{background:linear-gradient(95deg,var(--blue) 55%,var(--red));-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-accent]:not([data-accent="dominicano"]) .home-menu-trigger>span:first-child,html[data-accent]:not([data-accent="dominicano"]) .section-link,html[data-accent]:not([data-accent="dominicano"]) .home-game-all,html[data-accent]:not([data-accent="dominicano"]) .daily-stats strong{color:var(--blue)!important}
html[data-theme="dark"][data-accent]:not([data-accent="dominicano"]) .logo-word strong{background:linear-gradient(95deg,var(--blue2) 55%,#ff7b83);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-theme="dark"][data-accent]:not([data-accent="dominicano"]) .section-link,html[data-theme="dark"][data-accent]:not([data-accent="dominicano"]) .home-game-all,html[data-theme="dark"][data-accent]:not([data-accent="dominicano"]) .daily-stats strong,html[data-theme="dark"][data-accent]:not([data-accent="dominicano"]) .home-menu-trigger>span:first-child{color:#cfdcee!important}
/* bigger board numbers */
html[data-digits="grande"] .cell{font-size:clamp(25px,7.4vw,46px)}

/* ===== 0.2.32 - calendar of the Sudoku del dia ===== */
.daily-dialog{max-height:calc(100svh - 24px);overflow-y:auto}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin:2px 0 8px}
.cal-head strong{font-size:16px;color:#10213b}
.cal-head button{width:36px;height:36px;border:1px solid #dce4ef;border-radius:11px;background:#fff;color:#0b3d91;font-size:22px;line-height:1}
.cal-head button:disabled{opacity:.3}
.cal-week,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-week span{text-align:center;color:#8491a4;font-size:10px;font-weight:900;padding:2px 0 4px}
.cal-day{position:relative;aspect-ratio:1;min-height:38px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;border:1px solid #e1e8f2;border-radius:11px;background:#fff;color:#10213b;font-size:13px}
.cal-day b{font-weight:800;line-height:1}
.cal-day i{height:11px;margin-top:2px;font-size:11px;font-style:normal;line-height:11px}
.cal-day.done{background:#fff7da;border-color:#f0d27a}
.cal-day.done i{color:#e8a600;font-size:14px}
.cal-day.prog{border-color:#8fb2e8;background:#eef4ff}
.cal-day.prog i{color:#1976d2;font-size:9px}
.cal-day.today b{color:#d62027}
.cal-day.today{box-shadow:inset 0 0 0 2px #d62027}
.cal-day.picked{outline:3px solid #1976d2;outline-offset:1px}
.cal-day:disabled{opacity:.35}
.cal-legend{display:flex;justify-content:center;gap:16px;margin:9px 0 2px;color:#7e8ba0;font-size:10px;font-weight:700}
.cal-legend .star{color:#e8a600;font-style:normal}.cal-legend .dot{color:#1976d2;font-style:normal;font-size:8px}
.cal-panel{margin-top:10px;padding:11px;border:1px solid #dce4ef;border-radius:15px;background:#f5f8fd;text-align:left}
.cal-panel-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px}
.cal-panel-top strong{font-size:14px;color:#10213b}
.cal-panel-top span{color:#7e8ba0;font-size:11px;font-weight:800}
.cal-hint{margin:10px 0 0!important;color:#8491a4;font-size:12px}
html[data-theme="dark"] .cal-head strong,html[data-theme="dark"] .cal-panel-top strong{color:#e6edf7}
html[data-theme="dark"] .cal-head button{background:#1b2b45;border-color:#33466a;color:#8fc4ff}
html[data-theme="dark"] .cal-day{background:#16233a;border-color:#2b3a52;color:#e6edf7}
html[data-theme="dark"] .cal-day.done{background:#3a3112;border-color:#7a6420}
html[data-theme="dark"] .cal-day.done i{color:#ffc933}
html[data-theme="dark"] .cal-day.prog{background:#1c3357;border-color:#3d5f94}
html[data-theme="dark"] .cal-day.prog i{color:#8fc4ff}
html[data-theme="dark"] .cal-day.today b{color:#ff8a92}
html[data-theme="dark"] .cal-day.today{box-shadow:inset 0 0 0 2px #ff6b73}
html[data-theme="dark"] .cal-panel{background:#1b2b45;border-color:#33466a}
@media(max-width:380px){.cal-week,.cal-grid{gap:3px}.cal-day{font-size:12px;border-radius:9px}}

/* ===== 0.2.33 - game styles (Navidad, Halloween, Anime, Manga, Comic). Only colours, fonts and decoration; icons/texts are in js/skins.js ===== */
.cust-dialog{max-height:calc(100svh - 24px);overflow-y:auto}
.cust-skins{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.cust-skins button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 8px;border:2px solid #dce4ef;border-radius:14px;background:#fff;color:#243650}
.cust-skins button span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:color-mix(in srgb,var(--sk) 16%,#fff);font-size:23px}
.cust-skins button b{font-size:11px;font-weight:850}
.cust-skins button.on{border-color:var(--sk);box-shadow:0 0 0 3px color-mix(in srgb,var(--sk) 22%,transparent)}
.cust-sub{margin:7px 2px 0!important;color:#8491a4;font-size:11px}
html[data-theme="dark"] .cust-skins button{background:#16233a;border-color:#2b3a52;color:#e6edf7}
html[data-theme="dark"] .cust-skins button span{background:color-mix(in srgb,var(--sk) 30%,#16233a)}

/* shared by every style */
html[data-skin] body{font-family:var(--sf);background:var(--bgl)}
html[data-skin][data-theme="dark"] body{background:var(--bgd)}
html[data-skin] .home-screen,html[data-skin] .mini-games-screen{background:var(--bgl)}
html[data-skin][data-theme="dark"] .home-screen,html[data-skin][data-theme="dark"] .mini-games-screen{background:var(--bgd)}
html[data-skin] .home-topbar{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
html[data-skin] h1,html[data-skin] h2,html[data-skin] .logo-word strong,html[data-skin] .game-brand-copy strong{font-family:var(--sh,var(--sf))}
html[data-skin] .home-screen:before{background:linear-gradient(90deg,var(--blue) 0 33.33%,#fff 33.33% 66.66%,var(--red) 66.66%)}
html[data-skin] .home-screen .welcome-hero:after{background:linear-gradient(90deg,var(--red) 0 33.33%,#fff 33.33% 66.66%,var(--red) 66.66%)}
html[data-skin] .home-screen .play-icon{background:var(--red)}
html[data-skin] .home-screen .play-chevron{color:var(--red)}
html[data-skin] .home-screen .home-kicker span{background:var(--red)}
html[data-skin] .topbar{background:linear-gradient(110deg,var(--blue),var(--blue2) 62%,var(--red))}
html[data-skin] .logo-sudoku i:nth-child(1),html[data-skin] .logo-sudoku i:nth-child(2),html[data-skin] .logo-sudoku i:nth-child(5),html[data-skin] .logo-sudoku i:nth-child(12),html[data-skin] .logo-sudoku i:nth-child(15),html[data-skin] .logo-sudoku i:nth-child(16){background:var(--blue)}
html[data-skin] .logo-sudoku i:nth-child(3),html[data-skin] .logo-sudoku i:nth-child(4),html[data-skin] .logo-sudoku i:nth-child(8),html[data-skin] .logo-sudoku i:nth-child(9),html[data-skin] .logo-sudoku i:nth-child(13),html[data-skin] .logo-sudoku i:nth-child(14){background:var(--red)}
html[data-skin] .logo-sudoku i:nth-child(6),html[data-skin] .logo-sudoku i:nth-child(7),html[data-skin] .logo-sudoku i:nth-child(10),html[data-skin] .logo-sudoku i:nth-child(11){color:var(--blue)}
html[data-skin] .logo-word strong{background:linear-gradient(95deg,var(--blue) 55%,var(--red));-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-skin] .dom-chip{color:var(--red);border-color:color-mix(in srgb,var(--red) 35%,#fff)}
html[data-skin] .cell.selected,html[data-skin] .cell.given.selected{background:var(--sel)!important}
html[data-skin] .cell.same{color:var(--sc)!important;background:var(--same)}
html[data-skin][data-theme="dark"] .cell.selected,html[data-skin][data-theme="dark"] .cell.given.selected,html[data-skin][data-theme="dark"] .cell.selected.same{background:var(--seld)!important}
html[data-skin][data-theme="dark"] .cell.same{color:var(--scd)!important;background:var(--sameD)}
html[data-skin] .section-link,html[data-skin] .home-game-all,html[data-skin] .daily-stats strong,html[data-skin] .home-menu-trigger>span:first-child{color:var(--blue)!important}
html[data-skin][data-theme="dark"] .section-link,html[data-skin][data-theme="dark"] .home-game-all,html[data-skin][data-theme="dark"] .daily-stats strong,html[data-skin][data-theme="dark"] .home-menu-trigger>span:first-child{color:var(--scd)!important}
html[data-skin][data-theme="dark"] .logo-word strong{background:linear-gradient(95deg,var(--scd) 55%,var(--red));-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---- Navidad ---- */
html[data-skin="navidad"]{--blue:#1b6b3a;--blue2:#2e9a57;--red:#c4161c;--h1:#0a3320;--h2:#1b6b3a;--h3:#2f8f55;--h4:#e0494f;
 --sf:"Trebuchet MS","Segoe UI",system-ui,sans-serif;--sh:Georgia,"Times New Roman",serif;
 --bgl:radial-gradient(circle,#c4161c26 2px,transparent 2.6px) 0 0/44px 44px,radial-gradient(circle,#1b6b3a26 2px,transparent 2.6px) 22px 22px/44px 44px,linear-gradient(#fbf5ea,#e4f2e9);
 --bgd:radial-gradient(circle,#ffffff22 1.6px,transparent 2.2px) 0 0/40px 40px,radial-gradient(circle,#ffffff16 1.2px,transparent 1.8px) 20px 20px/40px 40px,linear-gradient(#0d2a1c,#07130d);
 --sel:#2e9a5740;--seld:#2e7d4fcc;--sc:#c4161c;--scd:#8be0a8;--same:#fde3e4;--sameD:#1d4a35}
html[data-skin="navidad"] .welcome-hero:before{background-image:radial-gradient(circle,#fff 2px,transparent 2.6px),radial-gradient(circle,#fff 1.4px,transparent 2px);background-size:38px 38px,23px 23px;background-position:0 0,11px 17px;opacity:.28}

/* ---- Halloween ---- */
html[data-skin="halloween"]{--blue:#6a2fb0;--blue2:#8a4fd6;--red:#f57c10;--h1:#12061f;--h2:#3a1670;--h3:#6a2fb0;--h4:#f57c10;
 --sf:"Trebuchet MS","Segoe UI",system-ui,sans-serif;--sh:"Chiller","Creepster","Papyrus",Georgia,serif;
 --bgl:radial-gradient(circle,#f57c1030 2px,transparent 2.6px) 0 0/48px 48px,linear-gradient(#fdf0e0,#eee0fb);
 --bgd:radial-gradient(ellipse at 50% 0,#3a1670 0,transparent 55%),radial-gradient(circle,#f57c1020 1.6px,transparent 2.2px) 0 0/44px 44px,linear-gradient(#170a29,#08030f);
 --sel:#f57c1038;--seld:#7a3fc7cc;--sc:#c25a00;--scd:#ffb36b;--same:#ffe8cf;--sameD:#4a2380}
html[data-skin="halloween"] .welcome-hero:before{background-image:radial-gradient(circle,#f57c10 2px,transparent 2.6px);background-size:34px 34px;opacity:.22}
html[data-skin="halloween"] .welcome-hero h1,html[data-skin="halloween"] .mini-games-header h1{letter-spacing:.5px;font-weight:700}
html[data-skin="halloween"] .welcome-hero h1 em{color:#ffb36b}

/* ---- Anime ---- */
html[data-skin="anime"]{--blue:#d6307f;--blue2:#ff6fb0;--red:#3d6bff;--h1:#2c1470;--h2:#7b3fd1;--h3:#d6307f;--h4:#5ad1ff;
 --sf:"Segoe UI","Hiragino Sans","Yu Gothic UI","Noto Sans JP",system-ui,sans-serif;--sh:"Segoe UI","Hiragino Sans",system-ui,sans-serif;
 --bgl:radial-gradient(circle,#ff8cc455 3px,transparent 4px) 0 0/64px 64px,radial-gradient(circle,#7fc6ff55 2.5px,transparent 3.5px) 32px 32px/64px 64px,linear-gradient(135deg,#fff0f8,#e6f3ff);
 --bgd:radial-gradient(circle,#ff6fb040 2.5px,transparent 3.5px) 0 0/64px 64px,radial-gradient(circle,#5ad1ff30 2px,transparent 3px) 32px 32px/64px 64px,linear-gradient(135deg,#1c1238,#0d0a22);
 --sel:#ff6fb040;--seld:#8a3fb8cc;--sc:#c2266e;--scd:#ff9fcd;--same:#ffe0f0;--sameD:#4a2060}
html[data-skin="anime"] .welcome-hero h1{font-style:italic}
html[data-skin="anime"] .welcome-hero:before{background-image:repeating-linear-gradient(105deg,#fff 0 2px,transparent 2px 26px);opacity:.14;background-size:auto}
html[data-skin="anime"] .play-button{border-radius:999px}

/* ---- Manga ---- */
html[data-skin="manga"]{--blue:#111;--blue2:#333;--red:#d4141c;--h1:#000;--h2:#0e0e0e;--h3:#2a2a2a;--h4:#d4141c;--bd:#111;
 --sf:Georgia,"Hiragino Mincho ProN","Yu Mincho",serif;--sh:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
 --bgl:radial-gradient(circle,#00000028 1.2px,transparent 1.7px) 0 0/9px 9px,#fff;
 --bgd:radial-gradient(circle,#ffffff1c 1.2px,transparent 1.7px) 0 0/9px 9px,#0b0b0b;
 --sel:#00000026;--seld:#ffffff33;--sc:#d4141c;--scd:#ff7b82;--same:#e9e9e9;--sameD:#2a2a2a}
html[data-skin="manga"][data-theme="dark"]{--bd:#f2f2f2;--blue:#4a4a4a;--blue2:#666}
html[data-skin="manga"][data-theme="dark"] .logo-sudoku{border-color:#f2f2f2}
html[data-skin="manga"][data-theme="dark"] .logo-sudoku i:nth-child(6),html[data-skin="manga"][data-theme="dark"] .logo-sudoku i:nth-child(7),html[data-skin="manga"][data-theme="dark"] .logo-sudoku i:nth-child(10),html[data-skin="manga"][data-theme="dark"] .logo-sudoku i:nth-child(11){background:#fff;color:#111}
html[data-skin="manga"] .welcome-hero:before{background-image:radial-gradient(circle,#fff 1.3px,transparent 1.8px);background-size:9px 9px;opacity:.16}
html[data-skin="manga"] .welcome-hero h1,html[data-skin="manga"] .mini-games-header h1{letter-spacing:.5px;font-weight:400;text-transform:uppercase}
html[data-skin="manga"] .welcome-hero h1 em{color:#ff5b62}
html[data-skin="manga"] .home-screen .welcome-hero,html[data-skin="manga"] .home-option,html[data-skin="manga"] .game-card,html[data-skin="manga"] .modal-card,html[data-skin="manga"] .daily-stats div,html[data-skin="manga"] .cal-panel{border:2px solid var(--bd)!important;border-radius:6px!important;box-shadow:5px 5px 0 var(--bd)!important}
html[data-skin="manga"] .home-screen .play-button{border-radius:4px;border:2px solid #000}
html[data-skin="manga"] .topbar{background:#111;border-bottom:3px solid #d4141c}
html[data-skin="manga"] .home-screen:before{background:#111}
html[data-skin="manga"][data-theme="dark"] .home-screen:before{background:#f2f2f2}
html[data-skin="manga"] .home-logo .logo-word strong{background:none;color:var(--bd)}
html[data-skin="manga"] .home-screen .welcome-hero:after{background:#d4141c}

/* ---- Comic ---- */
html[data-skin="comic"]{--blue:#1e4bd8;--blue2:#3d6bff;--red:#e8202a;--h1:#0f2a8a;--h2:#1e4bd8;--h3:#3d6bff;--h4:#ffd400;--bd:#111;
 --sf:"Comic Sans MS","Chalkboard SE","Comic Neue","Marker Felt",system-ui,sans-serif;--sh:Bangers,"Comic Sans MS","Chalkboard SE","Marker Felt",sans-serif;
 --bgl:radial-gradient(circle,#1e4bd830 2.2px,transparent 2.8px) 0 0/16px 16px,#fff4b8;
 --bgd:radial-gradient(circle,#ffd40030 2.2px,transparent 2.8px) 0 0/16px 16px,#111a3d;
 --sel:#ffd40088;--seld:#ffd40066;--sc:#1e4bd8;--scd:#ffe066;--same:#d6e2ff;--sameD:#2a3a82}
html[data-skin="comic"][data-theme="dark"]{--bd:#ffd400}
html[data-skin="comic"] .welcome-hero:before{background-image:radial-gradient(circle,#fff 2.2px,transparent 2.8px);background-size:15px 15px;opacity:.2}
html[data-skin="comic"] .welcome-hero h1,html[data-skin="comic"] .mini-games-header h1{letter-spacing:1px;font-weight:400;text-shadow:3px 3px 0 #111}
html[data-skin="comic"] .welcome-hero h1 em{color:#ffd400}
html[data-skin="comic"] .home-screen .welcome-hero,html[data-skin="comic"] .home-option,html[data-skin="comic"] .game-card,html[data-skin="comic"] .modal-card,html[data-skin="comic"] .daily-stats div,html[data-skin="comic"] .cal-panel,html[data-skin="comic"] .statsbar>div,html[data-skin="comic"] .game-shell{border:3px solid var(--bd)!important;border-radius:14px!important;box-shadow:6px 6px 0 var(--bd)!important}
html[data-skin="comic"] .home-screen .play-button{border:3px solid #111;border-radius:14px;box-shadow:5px 5px 0 #111}
html[data-skin="comic"] .topbar{border-bottom:4px solid #111}
html[data-skin="comic"] .home-screen:before{background:repeating-linear-gradient(90deg,#e8202a 0 24px,#ffd400 24px 48px,#1e4bd8 48px 72px)}
html[data-skin="comic"] .home-logo .logo-word strong{-webkit-text-stroke:1px #111}
@media(prefers-reduced-motion:no-preference){html[data-skin="comic"] .home-screen .play-button:hover{transform:translate(-2px,-2px) rotate(-1deg)}}

/* ===== 0.2.34 - smart hints ===== */
.smart-hint{margin:10px 0 0;padding:12px 14px;border:2px solid #f2b84b;border-radius:16px;background:#fff8e6;color:#3b2f10;box-shadow:0 8px 22px #b7791f22}
.sh-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.sh-top b{font-size:13px}
.sh-step{padding:2px 8px;border-radius:999px;background:#f2b84b33;color:#8a5a00;font-size:10px;font-weight:900}
.sh-text{margin:0 0 10px;font-size:13.5px;line-height:1.45}
.sh-actions{display:flex;flex-wrap:wrap;gap:7px}
.sh-actions button{flex:1 1 auto;min-height:40px;padding:8px 12px;border:0;border-radius:11px;font-size:12.5px;font-weight:850}
.sh-more,.sh-place{background:#e8a317;color:#fff}
.sh-more:disabled{background:#d9d2c0;color:#7a7260}
.sh-close{background:#fff;color:#6b5a2a;box-shadow:inset 0 0 0 1px #e6d6a8}
.cell.hl-unit{background:#fff1c2!important}
.cell.hl-block{background:#cfe4ff!important;box-shadow:inset 0 0 0 2px #3b82d6}
.cell.hl-target{background:#ffd27a!important;box-shadow:inset 0 0 0 3px #e8890c;z-index:1}
html[data-theme="dark"] .smart-hint{background:#2d2610;border-color:#a8791a;color:#f3e6bd}
html[data-theme="dark"] .sh-step{background:#a8791a44;color:#f2cf7a}
html[data-theme="dark"] .sh-close{background:#3a3014;color:#f3e6bd;box-shadow:inset 0 0 0 1px #6b5420}
html[data-theme="dark"] .cell.hl-unit{background:#4a3d12!important}
html[data-theme="dark"] .cell.hl-block{background:#1f4373!important;box-shadow:inset 0 0 0 2px #6aa9ff}
html[data-theme="dark"] .cell.hl-target{background:#7a5410!important;box-shadow:inset 0 0 0 3px #ffb347}

/* ===== 0.2.35 - tutorial ===== */
body.tut-open{overflow:hidden}
.tut{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:max(10px,var(--sat)) 10px max(10px,var(--sab));background:rgba(10,24,48,.62);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.tut.hidden{display:none}
.tut-card{width:min(560px,100%);max-height:100%;display:flex;flex-direction:column;border-radius:24px;background:#fff;color:#10213b;box-shadow:0 24px 70px #0006;overflow:hidden}
.tut-card header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px 0}
.tut-dots{display:flex;gap:5px;flex-wrap:wrap}
.tut-dots i{width:18px;height:6px;border-radius:4px;background:#dbe3ef}
.tut-dots i.past{background:#9db7dc}.tut-dots i.on{background:var(--red,#d62027);width:28px}
.tut-x{width:34px;height:34px;border:0;border-radius:11px;background:#eff3f8;color:#63738a;font-size:15px}
.tut-title{margin:10px 18px 4px;font-size:22px;letter-spacing:-.3px}
.tut-body{padding:4px 18px 12px;overflow-y:auto;flex:1;font-size:14.5px;line-height:1.5}
.tut-body p{margin:8px 0}
.tut-body .tp-lead{font-size:15.5px}
.tp-note{padding:9px 11px;border-radius:11px;background:#eef4ff;color:#2c4670;font-size:13px}
.tut-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px 14px;border-top:1px solid #e6ecf4}
.tut-count{color:#8491a4;font-size:12px;font-weight:800}
.tut-prev,.tut-next{min-width:104px;min-height:44px;padding:9px 14px;border:0;border-radius:13px;font-size:14px;font-weight:850}
.tut-prev{background:#eef3fa;color:#27406a}
.tut-next{background:var(--blue,#0b3d91);color:#fff}
.tp-btn{padding:11px 16px;border:0;border-radius:12px;background:var(--blue,#0b3d91);color:#fff;font-size:14px;font-weight:850}
.tp-btn.ghost{background:#eef3fa;color:#27406a}
.tp-btn.big{width:100%;min-height:52px;font-size:16px}
.tp-final{display:grid;gap:9px;margin-top:14px}
.tp-done{text-align:center;padding:12px 0}.tp-done span{font-size:56px}
.help-tut{margin:10px 0 2px;width:100%}
.tp-steps,.tp-list{margin:8px 0;padding-left:20px}.tp-steps li,.tp-list li{margin:6px 0}
.tp-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:4px;border-radius:13px;background:#edf3fb;margin:6px 0 10px}
.tp-tabs button{padding:9px 4px;border:0;border-radius:10px;background:transparent;color:#4b5d78;font-weight:850;font-size:13px}
.tp-tabs button.on{background:#fff;color:var(--blue,#0b3d91);box-shadow:0 2px 8px #183b6722}
/* mini boards */
.tg{width:min(100%,336px);aspect-ratio:1;margin:10px auto;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);border:2px solid #10213b;border-radius:6px;background:#fff;overflow:hidden}
.tg .tc{display:flex;align-items:center;justify-content:center;min-width:0;padding:0;border:0;border-right:1px solid #d3dbe8;border-bottom:1px solid #d3dbe8;background:#fff;color:#198754;font-weight:700;font-size:clamp(13px,4.3vw,19px);line-height:1;position:relative}
.tg .tc.tgiven{color:#14233b}
.tg .tc.tbr{border-right:2px solid #10213b}.tg .tc.tbb{border-bottom:2px solid #10213b}
.tg .tc.hl{background:#fff1c2}
.tg .tc.target{background:#ffd27a;box-shadow:inset 0 0 0 3px #e8890c}
.tg .tc.block{background:#cfe4ff;box-shadow:inset 0 0 0 2px #3b82d6}
.tg .tc.ok{background:#c8f0d6;color:#127040;box-shadow:inset 0 0 0 3px #1fa35b}
.tg .tc.dim{background:#eceff4}
#tutHidden .tc.hl{cursor:pointer}
.tg.tx .tc{font-size:clamp(11px,3.6vw,16px);color:#9aa6b6}
.tg.tx .tc.xcol{background:#f4f7fc}
.tg.tx .tc.xcorner{background:#ffd27a;color:#9a5a00;box-shadow:inset 0 0 0 3px #e8890c}
.tg.tx .tc.xelim{background:#ffe0e0;color:#c4161c;text-decoration:line-through}
.tg.tx .tc.xgone{background:#e3f6ea}
.tp-pad{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;margin:6px 0}
.tp-pad button{min-height:44px;border:0;border-radius:10px;background:#eef3fa;color:#10213b;font-size:17px;font-weight:850}
.tp-fb{min-height:22px;margin:8px 0 0;padding:0}
.tp-fb.good{padding:9px 11px;border-radius:11px;background:#e7f7ee;color:#17623b}
.tp-fb.bad{padding:9px 11px;border-radius:11px;background:#fff0f1;color:#a51c24}
.tp-q{margin-top:12px}
.tp-legend{display:grid;gap:6px;margin:6px 0}.tp-legend span{display:flex;align-items:center;gap:10px;font-size:13.5px}
.lg{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border:1px solid #d3dbe8;border-radius:9px;font-weight:700;font-size:17px;line-height:1;font-style:normal;background:#fff}
.lg-given{color:#14233b}.lg-mine{color:#198754}.lg-match{color:#0054d6;background:#dcecff}.lg-bad{color:#d62027}.lg-sel{background:#bfe0ff}
.tp-cell{display:flex;align-items:center;gap:14px;margin:8px 0}
.tp-bigcell{width:96px;height:96px;flex:0 0 96px;display:grid;grid-template-columns:repeat(3,1fr);border:2px solid #10213b;border-radius:10px;background:#fff}
.tp-bigcell i{display:grid;place-items:center;font-style:normal;font-size:17px;font-weight:700;color:#51647f}
.tp-table{width:100%;border-collapse:collapse;margin:8px 0;font-size:13.5px}
.tp-table th,.tp-table td{padding:8px 10px;border-bottom:1px solid #e1e8f2;text-align:left}
.tp-table th{color:#62738c;font-size:11px;letter-spacing:1px;text-transform:uppercase}
/* candidate strip (pairs) */
.ts{display:grid;grid-template-columns:repeat(9,1fr);gap:3px;margin:10px 0}
.ts-c{aspect-ratio:1/1.1;display:flex;align-items:center;justify-content:center;border:1.5px solid #c4d0e2;border-radius:8px;background:#fff}
.ts-c.pair{border-color:#e8890c;background:#fff6dc}
.ts-c b{font-size:19px;color:#14233b}
.ts-n{width:100%;height:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:2px}
.ts-n i{display:grid;place-items:center;font-style:normal;font-size:clamp(8px,2.6vw,11px);font-weight:700;color:#8aa0bf}
.ts-n i.on{color:#10213b}.ts-n i.x{color:#c4161c;text-decoration:line-through}
/* banner on the home screen */
.tut-banner{display:flex;align-items:center;gap:12px;margin:14px 0 0;padding:12px 14px;border:1px solid #cfe0f7;border-radius:18px;background:#fff;box-shadow:0 6px 18px #183b6712}
.tut-banner>span{font-size:26px}.tut-banner>div{flex:1;min-width:0}
.tut-banner b{display:block;font-size:14px}.tut-banner small{display:block;color:#718097;font-size:11.5px}
.tut-banner .tp-btn{padding:9px 12px;font-size:12.5px}
.tut-banner-x{border:0;background:transparent;color:#9aa6b6;font-size:15px;padding:4px}
@media(max-width:380px){.tp-pad{gap:3px}.tut-title{font-size:20px}.tut-banner{flex-wrap:wrap}}
html[data-theme="dark"] .tut-card{background:#16233a;color:#e6edf7}
html[data-theme="dark"] .tut-x,html[data-theme="dark"] .tut-prev,html[data-theme="dark"] .tp-btn.ghost,html[data-theme="dark"] .tp-pad button{background:#22344f;color:#dbe6f5}
html[data-theme="dark"] .tut-card footer{border-top-color:#2b3a52}
html[data-theme="dark"] .tut-dots i{background:#2b3a52}html[data-theme="dark"] .tut-dots i.past{background:#3d5f94}
html[data-theme="dark"] .tp-note{background:#1b2b45;color:#b9cdea}
html[data-theme="dark"] .tp-tabs,html[data-theme="dark"] .tg,html[data-theme="dark"] .tg .tc,html[data-theme="dark"] .lg,html[data-theme="dark"] .tp-bigcell,html[data-theme="dark"] .ts-c{background:#1b2b45;border-color:#33466a}
html[data-theme="dark"] .tg{border-color:#8da2c4}html[data-theme="dark"] .tg .tc.tbr{border-right-color:#8da2c4}html[data-theme="dark"] .tg .tc.tbb{border-bottom-color:#8da2c4}
html[data-theme="dark"] .tp-tabs button{color:#b9c8dc}html[data-theme="dark"] .tp-tabs button.on{background:#2b4468;color:#fff}
html[data-theme="dark"] .tg .tc{color:#4cd08a}html[data-theme="dark"] .tg .tc.tgiven{color:#e6edf7}
html[data-theme="dark"] .tg .tc.hl{background:#4a3d12}html[data-theme="dark"] .tg .tc.target{background:#7a5410}html[data-theme="dark"] .tg .tc.block{background:#1f4373}html[data-theme="dark"] .tg .tc.ok{background:#12472e;color:#7fe0ae}html[data-theme="dark"] .tg .tc.dim{background:#121d31}
html[data-theme="dark"] .tg.tx .tc.xcol{background:#1f3253}html[data-theme="dark"] .tg.tx .tc.xcorner{background:#7a5410;color:#ffd27a}html[data-theme="dark"] .tg.tx .tc.xelim{background:#4a1f26;color:#ff9aa1}html[data-theme="dark"] .tg.tx .tc.xgone{background:#14291f}
html[data-theme="dark"] .lg-given,html[data-theme="dark"] .ts-c b,html[data-theme="dark"] .ts-n i.on{color:#e6edf7}html[data-theme="dark"] .lg-match{background:#1d3a63;color:#8fc4ff}html[data-theme="dark"] .lg-sel{background:#24589c}
html[data-theme="dark"] .tp-bigcell{border-color:#8da2c4}html[data-theme="dark"] .tp-bigcell i{color:#b9c8dc}
html[data-theme="dark"] .ts-c.pair{background:#3a3112;border-color:#a8791a}
html[data-theme="dark"] .tp-table th,html[data-theme="dark"] .tp-table td{border-bottom-color:#2b3a52}
html[data-theme="dark"] .tp-fb.good{background:#12372a;color:#7fe0ae}html[data-theme="dark"] .tp-fb.bad{background:#3a1f28;color:#ff9aa1}
html[data-theme="dark"] .tut-banner{background:#16233a;border-color:#2b3a52}html[data-theme="dark"] .tut-banner small{color:#93a3ba}

/* ===== 0.2.36 - tutorials for the other games ===== */
.gt-link{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin:12px 0 0;padding:11px 14px;border:1.5px dashed #9db7dc;border-radius:14px;background:transparent;color:var(--blue,#0b3d91);font-size:13.5px;font-weight:850}
.gt-mini{font-size:15px}
.tcard{display:inline-grid;place-items:center;width:46px;height:66px;flex:0 0 auto;border:2px solid #fff;border-radius:9px;box-shadow:0 2px 7px #0004;color:#fff;font-size:19px;font-weight:900;line-height:1}
.tcard b{font-weight:900}
.tcard.big{width:60px;height:86px;font-size:25px}
.tcard.sm{width:34px;height:48px;font-size:14px;border-width:1.5px}
.tc-r{background:#d62027}.tc-b{background:#1e4bd8}.tc-g{background:#1a9a4a}.tc-y{background:#f2b705;color:#2b2200}.tc-k{background:#1a1f2b}
.tcard.parry{background:conic-gradient(#d62027 0 25%,#1e4bd8 0 50%,#1a9a4a 0 75%,#f2b705 0)}
.tcard.super{background:linear-gradient(135deg,#1a1f2b 40%,#d62027)}
.gt-hand{display:flex;align-items:center;gap:12px;margin:8px 0;flex-wrap:wrap}
.gt-hand>span{flex:1;min-width:140px;font-size:14px}
.gt-center{margin:10px 0 4px;font-weight:800}.gt-center .tcard{vertical-align:middle;margin-left:6px}
.gt-chk{padding:3px 9px;border-radius:999px;background:#e7f7ee;color:#17623b;font-size:12.5px;font-weight:800;flex:0 0 auto!important;min-width:0!important}
.gt-chk.bad{background:#fff0f1;color:#a51c24}
.gt-flow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:10px 0}
.gt-flow i{font-style:normal;font-size:20px;color:#8491a4}
.gt-sum{display:inline-grid;place-items:center;min-width:40px;height:40px;padding:0 8px;border-radius:12px;background:#eef3fa;color:#10213b;font-size:20px;font-weight:900}
.gt-sum.ok{background:#c8f0d6;color:#127040}
.gt-own{display:inline-block;margin-bottom:6px;padding:3px 10px;border-radius:999px;background:linear-gradient(95deg,#ffe9a8,#ffd1d4);color:#6a3a00;font-size:11.5px;font-weight:900}
.gt-tab td{vertical-align:middle}.gt-tab td:first-child{width:44px;padding-right:0}
.gt-pc{font-size:30px;text-align:center}
.gt-board{display:grid;grid-template-columns:repeat(var(--c),1fr);gap:3px;width:min(100%,280px);margin:10px auto}
.gt-board i{aspect-ratio:1;display:grid;place-items:center;border-radius:7px;background:#eef3fa;font-style:normal;font-weight:900;font-size:17px;color:#1e4bd8}
.gt-board.gt-ttt i{font-size:30px;background:#fff;border:2px solid #10213b;border-radius:4px}
.gt-board i.x{color:#d62027}.gt-board i.o{color:#1e4bd8}
.gt-mines i{background:#dfe6f1}
.gt-mines.gt-nine i.h{background:#9fb3d1;color:transparent}.gt-mines.gt-nine i.n{background:#fff;color:#d62027;font-size:24px}
.gt-ships{display:grid;gap:6px;margin:10px 0;font-weight:800;color:#27406a}.gt-ships span{padding:7px 10px;border-radius:9px;background:#eef3fa}
.gt-emojis span{flex:0 0 auto;min-width:0;font-size:34px}
.gt-rank li{padding:3px 0}
.gt-parts{display:grid;gap:10px;margin:12px 0}
.gt-part{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:16px;border:2px solid #cfe0f7;border-radius:16px;background:#fff;color:#10213b;text-align:left}
.gt-part b{font-size:17px}.gt-part small{color:#718097;font-size:12.5px}
.gq{margin:12px 0 18px;padding:12px;border:1px solid #dce4ef;border-radius:15px;background:#f8fafd}
.gq-o{display:flex;align-items:center;gap:10px;width:100%;margin:6px 0;padding:10px 12px;border:1.5px solid #d3dbe8;border-radius:12px;background:#fff;color:#10213b;font-size:14px;font-weight:700;text-align:left}
.gq-o.picked{border-color:#1fa35b;background:#e7f7ee}
.gq .tp-q{margin:0 0 6px}
@media(max-width:380px){.tcard.big{width:52px;height:76px}}
html[data-theme="dark"] .gt-link{border-color:#3d5f94;color:#8fc4ff}
html[data-theme="dark"] .gt-chk{background:#12372a;color:#7fe0ae}html[data-theme="dark"] .gt-chk.bad{background:#3a1f28;color:#ff9aa1}
html[data-theme="dark"] .gt-sum,html[data-theme="dark"] .gt-board i,html[data-theme="dark"] .gt-ships span{background:#22344f;color:#dbe6f5}
html[data-theme="dark"] .gt-sum.ok{background:#12472e;color:#7fe0ae}
html[data-theme="dark"] .gt-board.gt-ttt i{background:#1b2b45;border-color:#8da2c4}
html[data-theme="dark"] .gt-mines i{background:#22344f}html[data-theme="dark"] .gt-mines.gt-nine i.h{background:#33466a}html[data-theme="dark"] .gt-mines.gt-nine i.n{background:#1b2b45;color:#ff9aa1}
html[data-theme="dark"] .gt-part{background:#1b2b45;border-color:#33466a;color:#e6edf7}
html[data-theme="dark"] .gq{background:#1b2b45;border-color:#33466a}
html[data-theme="dark"] .gq-o{background:#22344f;border-color:#33466a;color:#e6edf7}html[data-theme="dark"] .gq-o.picked{background:#12372a;border-color:#2c6b4c}
html[data-theme="dark"] .gt-own{background:linear-gradient(95deg,#5a4510,#5a2530);color:#ffe9a8}

/* ===== 0.2.38 - no emoji badges on the game cards; picture backgrounds for Sudoku del dia, Multijugador and Estadisticas ===== */
.game-card.has-art>span,.game-card.home-game-all>span{display:none!important}
.home-game-all{justify-content:flex-end}
.art-daily{--svg:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 110' preserveAspectRatio='xMaxYMid slice'><defs><path id='s' d='M0,-9 L2.6,-3.2 L9,-2.8 L4.1,1.4 L5.6,7.6 L0,4.4 L-5.6,7.6 L-4.1,1.4 L-9,-2.8 L-2.6,-3.2Z'/></defs><g fill='white' fill-opacity='.14'><rect x='168' y='10' width='22' height='22' rx='5'/><rect x='194' y='10' width='22' height='22' rx='5'/><rect x='220' y='10' width='22' height='22' rx='5'/><rect x='246' y='10' width='22' height='22' rx='5'/><rect x='272' y='10' width='22' height='22' rx='5'/><rect x='168' y='36' width='22' height='22' rx='5'/><rect x='194' y='36' width='22' height='22' rx='5'/><rect x='220' y='36' width='22' height='22' rx='5'/><rect x='246' y='36' width='22' height='22' rx='5'/><rect x='272' y='36' width='22' height='22' rx='5'/><rect x='168' y='62' width='22' height='22' rx='5'/><rect x='194' y='62' width='22' height='22' rx='5'/><rect x='220' y='62' width='22' height='22' rx='5'/><rect x='246' y='62' width='22' height='22' rx='5'/><rect x='272' y='62' width='22' height='22' rx='5'/><rect x='168' y='88' width='22' height='18' rx='5'/><rect x='194' y='88' width='22' height='18' rx='5'/><rect x='220' y='88' width='22' height='18' rx='5'/></g><g fill='%23ffd24a'><use href='%23s' x='205' y='21'/><use href='%23s' x='257' y='21'/><use href='%23s' x='231' y='47'/><use href='%23s' x='283' y='47'/><use href='%23s' x='179' y='73'/><use href='%23s' x='257' y='73'/></g></svg>");--bgi:linear-gradient(110deg,var(--h1,#07276b),var(--h3,#1554b9))}
.art-multi{--svg:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 110' preserveAspectRatio='xMaxYMid slice'><g fill='white' fill-opacity='.28'><circle cx='222' cy='40' r='13'/><path d='M198 100 Q198 60 222 60 Q246 60 246 100Z'/></g><g fill='white' fill-opacity='.45'><circle cx='268' cy='36' r='15'/><path d='M240 104 Q240 58 268 58 Q296 58 296 104Z'/></g><g fill='%23ffd24a'><circle cx='186' cy='24' r='4'/><circle cx='304' cy='18' r='3'/><circle cx='296' cy='84' r='5' fill-opacity='.6'/></g><path d='M170 70 L186 56 L202 70' stroke='white' stroke-opacity='.3' stroke-width='3' fill='none'/></svg>");--bgi:linear-gradient(110deg,#4a0f1e,var(--red,#d62027))}
.art-stats{--svg:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 110' preserveAspectRatio='xMaxYMid slice'><g fill='white' fill-opacity='.2'><rect x='176' y='72' width='20' height='38' rx='4'/><rect x='204' y='56' width='20' height='54' rx='4'/><rect x='232' y='64' width='20' height='46' rx='4'/><rect x='260' y='38' width='20' height='72' rx='4'/><rect x='288' y='20' width='20' height='90' rx='4'/></g><polyline points='186,60 214,44 242,52 270,26 298,10' fill='none' stroke='%23ffd24a' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/><g fill='%23ffd24a'><circle cx='186' cy='60' r='5'/><circle cx='214' cy='44' r='5'/><circle cx='242' cy='52' r='5'/><circle cx='270' cy='26' r='5'/><circle cx='298' cy='10' r='6'/></g></svg>");--bgi:linear-gradient(110deg,var(--h2,#0b3d91),var(--h4,#2a6ee0))}
html .home-menu .home-option.art,html[data-theme="dark"] .home-menu .home-option.art,html .soon-row .home-option.art,html[data-theme="dark"] .soon-row .home-option.art{position:relative;overflow:hidden;min-height:92px;padding:16px 18px;border:0;border-style:solid;color:#fff;background:var(--svg) right center/auto 100% no-repeat,var(--bgi);box-shadow:0 10px 24px #10213b30}
html .home-menu .home-option.art:hover{background:var(--svg) right center/auto 100% no-repeat,var(--bgi);box-shadow:0 14px 30px #10213b45}
.home-option.art .option-copy strong{color:#fff;font-size:16px;text-shadow:0 1px 3px #0006}
.home-option.art .option-copy small{color:#ffffffd9;font-size:11px;text-shadow:0 1px 2px #0006}
.home-option.art .dev-badge,html[data-theme="dark"] .home-option.art .dev-badge{background:#ffffff2e;color:#fff;border:0}
html .home-option.art.daily-done,html[data-theme="dark"] .home-option.art.daily-done{background:var(--svg) right center/auto 100% no-repeat,linear-gradient(110deg,#0b3d24,#16874f)}
html .home-option.art.daily-done .dev-badge,html[data-theme="dark"] .home-option.art.daily-done .dev-badge{background:#ffffff33;color:#fff}
html .home-option.art:not(.daily-done) .dev-badge{background:#ffffff2e;color:#fff}
@media(max-width:560px){html .soon-row .home-option.art{min-height:84px}}
html .home-option.art .dev-badge,html[data-theme="dark"] .home-option.art .dev-badge{position:absolute;top:9px;left:16px;padding:3px 8px;font-size:9px;letter-spacing:.3px}
html .home-option.art .option-copy{margin-top:16px}

/* ===== 0.2.39 - "Todos los juegos" card: mosaic of the games not shown in the row ===== */
.gc-mosaic{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:3px;padding:3px;background:#0d1a33;transform:rotate(-4deg) scale(1.18);transform-origin:center}
.gc-mosaic>i{display:block;overflow:hidden;border-radius:7px;font-style:normal}
.gc-mosaic>i svg{width:100%;height:100%;transition:none}
.game-card.has-art:hover .gc-mosaic svg{transform:none}
.home-game-more::after{background:linear-gradient(180deg,rgba(8,18,36,.35) 0,rgba(8,18,36,.55) 35%,rgba(8,18,36,.92) 100%)!important}
.home-game-more>b i{font-style:normal}

/* ===== 0.2.40 - score ===== */
.score-bar{display:flex;align-items:center;gap:10px;min-height:38px;margin:8px 0 0;padding:6px 12px;border:1px solid #dce4ef;border-radius:13px;background:#fff;color:#10213b;box-shadow:0 4px 12px #183b670b}
.sb-score{display:flex;align-items:center;gap:6px;font-size:17px;font-weight:900;white-space:nowrap}
.sb-score i{font-style:normal;font-size:15px}
.sb-combo{display:none;padding:2px 9px;border-radius:999px;background:linear-gradient(95deg,#ffb347,#ff6b3d);color:#fff;font-size:11.5px;font-weight:900;white-space:nowrap}
.sb-combo.on{display:inline-block;animation:sbPop .25s ease}
.sb-msg{flex:1;min-width:0;text-align:right;font-size:12.5px;font-weight:850;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-msg.show{opacity:1;transform:none}
.sb-msg.good{color:#198754}.sb-msg.bad{color:#d62027}.sb-msg.bonus{color:#c77700}
@keyframes sbPop{0%{transform:scale(.8)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.sb-combo.on{animation:none}.sb-msg{transition:none}}
.score-sum{margin:12px 0 4px;padding:12px 14px;border:1px solid #f0d27a;border-radius:15px;background:#fff8e1;text-align:left}
.score-sum h4{margin:0 0 6px;font-size:14px;color:#7a5200}
.score-sum table{width:100%;border-collapse:collapse;font-size:13.5px;color:#3b2f10}
.score-sum td{padding:3px 0}.score-sum td:last-child{text-align:right;font-weight:800}
.score-sum tr.sum-total td{border-top:1px solid #e6c766;padding-top:6px;font-size:17px;font-weight:900}
.score-sum p{margin:8px 0 0!important;font-size:12.5px;color:#7a5200!important}
html[data-theme="dark"] .score-bar{background:#16233a;border-color:#2b3a52;color:#e6edf7}
html[data-theme="dark"] .sb-msg.good{color:#4cd08a}html[data-theme="dark"] .sb-msg.bad{color:#ff8a92}html[data-theme="dark"] .sb-msg.bonus{color:#ffc66b}
html[data-theme="dark"] .score-sum{background:#2d2610;border-color:#6b5420}
html[data-theme="dark"] .score-sum h4,html[data-theme="dark"] .score-sum p{color:#f2cf7a!important}
html[data-theme="dark"] .score-sum table{color:#f3e6bd}html[data-theme="dark"] .score-sum tr.sum-total td{border-top-color:#8a6a1f}

/* ===== 0.2.41 - XP and levels ===== */
.level-card{display:flex;align-items:center;gap:14px;width:100%;margin:14px 0 0;padding:12px 14px;border:1px solid #dce4ef;border-radius:18px;background:#fff;color:#10213b;text-align:left;box-shadow:0 6px 18px #183b6712}
.lv-badge{display:grid;place-items:center;align-content:center;width:54px;height:54px;flex:0 0 54px;border-radius:16px;background:linear-gradient(135deg,var(--blue,#0b3d91),var(--red,#d62027));color:#fff;line-height:1}
.lv-badge b{font-size:22px;font-weight:900}.lv-badge small{font-size:8px;font-weight:900;letter-spacing:1px;opacity:.85}
.lv-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.lv-main strong{font-size:15px;margin:0}
.lv-main small{color:#718097;font-size:11px;font-weight:700;line-height:1.3}
.lv-bar{display:block;height:9px;border-radius:6px;background:#e5ecf6;overflow:hidden}
.lv-bar.big{height:12px;margin:8px 0}
.lv-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#ffb347,#ff6b3d)}
.lv-go{color:#9aa6b6;font-size:26px}
.difficulty-choice.locked{opacity:.55;filter:grayscale(.5)}
.difficulty-choice.locked:hover{transform:none;box-shadow:none}
.xp-sum{margin:10px 0 4px;padding:12px 14px;border:1px solid #bfe0c9;border-radius:15px;background:#eefaf2;text-align:left}
.xp-sum h4{margin:0;font-size:14px;color:#17623b}
.xp-gain{margin:2px 0!important;font-size:24px;font-weight:900;color:#127040!important}
.xp-sum small{display:block;color:#4c7a5e;font-size:12px}
.xp-sum .xp-bar{height:8px;margin:8px 0 4px;border-radius:5px;background:#cfe8d8;overflow:hidden}.xp-sum .xp-bar i{display:block;height:100%;background:linear-gradient(90deg,#34c27a,#17a35a)}
.xp-up{margin-top:8px;padding:9px 11px;border-radius:11px;background:#fff4cc;color:#6a4a00;font-size:13.5px;line-height:1.5}
.xp-dialog{max-height:calc(100svh - 24px);overflow-y:auto;text-align:left}
.xp-h{margin:14px 0 6px;color:#62738c;font-size:11px;letter-spacing:1.2px;text-transform:uppercase}
.xp-how{margin:0!important;font-size:13px;line-height:1.5;color:#51647f!important}
.xp-table{width:100%;border-collapse:collapse;font-size:13.5px}.xp-table td{padding:7px 6px;border-bottom:1px solid #e6ecf4}.xp-table td:last-child{text-align:right}
.xp-table tr:not(.ok){color:#8491a4}
.xp-titles{margin:0;padding:0;list-style:none;font-size:13.5px}.xp-titles li{padding:5px 0;color:#8491a4}.xp-titles li.ok{color:#10213b}
html[data-theme="dark"] .level-card{background:#16233a;border-color:#2b3a52;color:#e6edf7}
html[data-theme="dark"] .lv-main small{color:#93a3ba}html[data-theme="dark"] .lv-bar{background:#22344f}
html[data-theme="dark"] .xp-sum{background:#12372a;border-color:#2c6b4c}html[data-theme="dark"] .xp-sum h4{color:#7fe0ae}html[data-theme="dark"] .xp-gain{color:#7fe0ae!important}html[data-theme="dark"] .xp-sum small{color:#9bd6b5}
html[data-theme="dark"] .xp-sum .xp-bar{background:#1d4a35}
html[data-theme="dark"] .xp-up{background:#3a3112;color:#f2cf7a}
html[data-theme="dark"] .xp-how{color:#b9c8dc!important}html[data-theme="dark"] .xp-table td{border-bottom-color:#2b3a52}html[data-theme="dark"] .xp-titles li.ok{color:#e6edf7}

/* ===== 0.2.42 - achievements and win counters ===== */
.ach-card{width:min(600px,100%)}
.ach-title{margin:0!important;font-size:22px}
.ach-card header{padding-bottom:6px}
.ach-body{padding-top:6px}
.ach-king{display:flex;gap:14px;align-items:center;margin:4px 0 14px;padding:16px;border-radius:20px;background:linear-gradient(135deg,#2a1d05,#5a3d00);color:#ffe9a8;box-shadow:0 10px 26px #5a3d0055}
.ach-king.on{background:linear-gradient(135deg,#a56a00,#ffd24a 55%,#fff1b0);color:#4a2f00;box-shadow:0 0 0 3px #ffd24a,0 12px 30px #ffb30066}
.ak-crown{font-size:46px;filter:drop-shadow(0 3px 6px #0006)}
.ach-king small{font-size:9px;font-weight:900;letter-spacing:1.4px;opacity:.85}
.ach-king b{display:block;font-size:22px;margin:2px 0}
.ach-king p{margin:0 0 8px;font-size:12.5px;opacity:.92}
.ak-bar{height:9px;border-radius:6px;background:#ffffff33;overflow:hidden}.ak-bar i{display:block;height:100%;background:linear-gradient(90deg,#ffd24a,#fff1b0)}
.ach-king.on .ak-bar{background:#4a2f0033}.ach-king.on .ak-bar i{background:#4a2f00}
.ach-king em{display:block;margin-top:4px;font-size:11px;font-style:normal;font-weight:900}
.ach-counters{margin:0 0 6px;padding:14px;border:1px solid #dce4ef;border-radius:18px;background:#f5f8fd}
.ach-counters h3,.ach-group{margin:0 0 8px;color:#62738c;font-size:11px;letter-spacing:1.2px;text-transform:uppercase}
.ach-group{margin:16px 0 6px}.ach-group small{color:#9aa6b6;letter-spacing:0}
.ac-total{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}.ac-total b{font-size:34px;color:var(--blue,#0b3d91)}.ac-total span{color:#51647f;font-size:13px;font-weight:700}
.ac-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-bottom:10px}
.ac-grid div{padding:7px 2px;border-radius:10px;background:#fff;text-align:center}.ac-grid b{display:block;font-size:16px}.ac-grid small{display:block;font-size:9px;color:#718097;font-weight:800}
.ac-row{display:flex;justify-content:space-between;gap:8px;margin-top:6px;font-size:12px;color:#51647f}.ac-row b{color:#10213b}
.ach-item{display:flex;align-items:center;gap:12px;margin:6px 0;padding:11px 12px;border:1px solid #dce4ef;border-radius:15px;background:#fff;opacity:.72}
.ach-item.on{opacity:1;border-color:#f0d27a;background:#fff9e5}
.ach-item.secret{background:#f3f5f9}
.ai-icon{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:13px;background:#eef3fa;font-size:24px;filter:grayscale(1)}
.ach-item.on .ai-icon{filter:none;background:#ffe9a8}
.ai-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ai-main b{font-size:14px}.ai-main small{color:#718097;font-size:11.5px;line-height:1.35}
.ai-bar{display:block;height:6px;margin-top:4px;border-radius:4px;background:#e5ecf6;overflow:hidden}.ai-bar i{display:block;height:100%;background:linear-gradient(90deg,#ffb347,#ff6b3d)}
.ai-main em{font-size:10.5px;font-style:normal;color:#8491a4;font-weight:800}
.ai-xp{font-size:11.5px;font-weight:900;color:#9a7a1a;white-space:nowrap}
.ach-toast{position:fixed;left:50%;top:max(12px,var(--sat));z-index:9500;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 24px);padding:10px 16px 10px 12px;border:0;border-radius:18px;background:#10213b;color:#fff;text-align:left;box-shadow:0 14px 34px #0007;transform:translate(-50%,-140%);transition:transform .35s cubic-bezier(.2,.9,.3,1.2)}
.ach-toast.show{transform:translate(-50%,0)}
.ach-toast.king{background:linear-gradient(135deg,#a56a00,#ffd24a);color:#3a2400}
.at-icon{font-size:30px}.at-copy{display:flex;flex-direction:column;line-height:1.2}.at-copy small{font-size:9px;font-weight:900;letter-spacing:1.2px;opacity:.8}.at-copy b{font-size:15px}.at-copy em{font-size:11px;font-style:normal;font-weight:800;color:#ffd24a}.ach-toast.king .at-copy em{color:#4a2f00}
@media(prefers-reduced-motion:reduce){.ach-toast{transition:none}}
@media(max-width:380px){.ac-grid{grid-template-columns:repeat(3,1fr)}}
html[data-theme="dark"] .ach-counters{background:#1b2b45;border-color:#33466a}
html[data-theme="dark"] .ac-total b{color:#8fc4ff}html[data-theme="dark"] .ac-total span,html[data-theme="dark"] .ac-row{color:#b9c8dc}html[data-theme="dark"] .ac-row b{color:#e6edf7}
html[data-theme="dark"] .ac-grid div{background:#16233a}html[data-theme="dark"] .ac-grid b{color:#e6edf7}
html[data-theme="dark"] .ach-item{background:#16233a;border-color:#2b3a52}html[data-theme="dark"] .ach-item.on{background:#2d2610;border-color:#6b5420}html[data-theme="dark"] .ach-item.secret{background:#121d31}
html[data-theme="dark"] .ai-icon{background:#22344f}html[data-theme="dark"] .ach-item.on .ai-icon{background:#5a4510}
html[data-theme="dark"] .ai-main small{color:#93a3ba}html[data-theme="dark"] .ai-bar{background:#22344f}html[data-theme="dark"] .ai-xp{color:#f2cf7a}
html[data-theme="dark"] .ach-toast{background:#1b2b45;border:1px solid #33466a}

/* ===== 0.2.43 - statistics ===== */
.st-hero{display:flex;align-items:center;gap:16px;margin:4px 0 12px;padding:16px;border-radius:20px;background:linear-gradient(135deg,var(--h1,#07276b),var(--h3,#1554b9));color:#fff}
.st-ring{--p:0;display:grid;place-items:center;align-content:center;width:84px;height:84px;flex:0 0 84px;border-radius:50%;background:conic-gradient(#ffd24a calc(var(--p)*1%),#ffffff2e 0);position:relative}
.st-ring::before{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--h2,#0b3d91)}
.st-ring b,.st-ring small{position:relative}.st-ring b{font-size:21px;line-height:1}.st-ring small{font-size:9px;opacity:.85}
.st-hero-copy b{font-size:30px;line-height:1.1}.st-hero-copy b small{font-size:12px;font-weight:700;opacity:.85}
.st-hero-copy p{margin:3px 0 0;font-size:12.5px;opacity:.92}
.st-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.st-cards div{padding:11px 6px;border:1px solid #dce4ef;border-radius:14px;background:#f5f8fd;text-align:center}
.st-cards b{display:block;font-size:17px;color:#10213b}.st-cards small{display:block;margin-top:3px;color:#718097;font-size:10px;font-weight:800}
.st-diff{margin:8px 0;padding:12px;border:1px solid #dce4ef;border-radius:15px;background:#fff}
.st-diff.empty{opacity:.6}
.st-diff-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.st-diff-top b{font-size:15px}.st-diff-top span{color:#718097;font-size:11.5px;font-weight:700}
.st-bar{height:7px;margin:7px 0 9px;border-radius:5px;background:#e5ecf6;overflow:hidden}.st-bar i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#34c27a,#17a35a)}
.st-diff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.st-diff-grid span{display:flex;flex-direction:column;gap:1px}.st-diff-grid small{color:#8491a4;font-size:9.5px;font-weight:800}.st-diff-grid b{font-size:13.5px;color:#10213b}
.st-rec{display:flex;align-items:center;gap:11px;margin:5px 0;padding:9px 11px;border:1px solid #dce4ef;border-radius:13px;background:#fff}
.st-rec.win{border-color:#bfe0c9}.st-rec.loss{border-color:#f0c8cc}
.st-r-ic{font-size:18px}.st-rec div{flex:1;min-width:0}.st-rec b{display:block;font-size:13.5px}.st-rec small{display:block;color:#718097;font-size:11px}.st-r-sc{font-weight:900;color:#9a7a1a;font-size:13px}
.st-others{display:flex;flex-wrap:wrap;gap:6px}.st-others span{padding:6px 10px;border-radius:999px;background:#eef3fa;font-size:12px;font-weight:700}.st-others b{margin-left:4px;color:var(--blue,#0b3d91)}
.st-none{margin:6px 0;color:#8491a4;font-size:13px}
.st-note{margin:16px 0 8px;color:#8491a4;font-size:11.5px;line-height:1.45}
.st-reset{width:100%;margin:4px 0 6px;padding:11px;border:1px dashed #d9a3a8;border-radius:12px;background:transparent;color:#a51c24;font-size:13px;font-weight:850}
.st-reset.armed{background:#d62027;color:#fff;border-style:solid}
@media(max-width:380px){.st-diff-grid{grid-template-columns:repeat(2,1fr)}}
html[data-theme="dark"] .st-cards div,html[data-theme="dark"] .st-diff,html[data-theme="dark"] .st-rec{background:#16233a;border-color:#2b3a52}
html[data-theme="dark"] .st-cards b,html[data-theme="dark"] .st-diff-grid b{color:#e6edf7}html[data-theme="dark"] .st-cards small,html[data-theme="dark"] .st-rec small,html[data-theme="dark"] .st-diff-top span{color:#93a3ba}
html[data-theme="dark"] .st-bar{background:#22344f}html[data-theme="dark"] .st-others span{background:#22344f}html[data-theme="dark"] .st-r-sc{color:#f2cf7a}
html[data-theme="dark"] .st-rec.win{border-color:#2c6b4c}html[data-theme="dark"] .st-rec.loss{border-color:#6b2c34}
html[data-theme="dark"] .st-reset{color:#ff9aa1;border-color:#6b2c34}

/* ===== 0.2.44 (Phase 14) - Galaxia, Bosque, Caramelo, Fuego, Minimalista ===== */
.daily-best{display:block;margin-top:2px;font-style:normal;font-size:9.5px;font-weight:800;color:#8491a4}
/* ---- Galaxia ---- */
html[data-skin="galaxia"]{--blue:#5b2bd1;--blue2:#7d52ee;--red:#19a8e6;--h1:#0b0630;--h2:#2b1485;--h3:#5b2bd1;--h4:#19c3ff;
 --sf:"Trebuchet MS","Segoe UI",system-ui,sans-serif;--sh:"Trebuchet MS","Segoe UI",sans-serif;
 --bgl:radial-gradient(circle,#5b2bd140 1.5px,transparent 2px) 0 0/38px 38px,radial-gradient(circle,#19c3ff40 1px,transparent 1.6px) 19px 19px/38px 38px,linear-gradient(160deg,#f1ecff,#e2f4ff);
 --bgd:radial-gradient(circle,#ffffff55 1.2px,transparent 1.8px) 0 0/46px 46px,radial-gradient(circle,#19c3ff44 1px,transparent 1.6px) 23px 31px/46px 46px,radial-gradient(ellipse at 80% 0,#3a1b8a 0,transparent 55%),linear-gradient(#0b0630,#05021a);
 --sel:#7d52ee3d;--seld:#5b2bd1cc;--sc:#5b2bd1;--scd:#9fe3ff;--same:#e3dcff;--sameD:#2b1f6e}
html[data-skin="galaxia"] .welcome-hero:before{background-image:radial-gradient(circle,#fff 1.5px,transparent 2px),radial-gradient(circle,#9fe3ff 1px,transparent 1.6px);background-size:34px 34px,21px 21px;background-position:0 0,10px 14px;opacity:.35}
html[data-skin="galaxia"] .welcome-hero h1 em{color:#9fe3ff}
/* ---- Bosque ---- */
html[data-skin="bosque"]{--blue:#2d6a3e;--blue2:#4a9a5c;--red:#a8683a;--h1:#0f2e1a;--h2:#2d6a3e;--h3:#3f8a53;--h4:#8fcf74;
 --sf:"Trebuchet MS","Segoe UI",system-ui,sans-serif;--sh:Georgia,"Times New Roman",serif;
 --bgl:radial-gradient(circle,#2d6a3e22 2px,transparent 2.6px) 0 0/50px 50px,radial-gradient(circle,#a8683a22 2px,transparent 2.6px) 25px 25px/50px 50px,linear-gradient(#f3f6ec,#e1ecd9);
 --bgd:radial-gradient(circle,#8fcf7428 1.6px,transparent 2.2px) 0 0/46px 46px,linear-gradient(#0f1f14,#08120b);
 --sel:#4a9a5c40;--seld:#2d6a3ecc;--sc:#2d6a3e;--scd:#a6e58f;--same:#dff0d6;--sameD:#1c4a2b}
html[data-skin="bosque"] .welcome-hero:before{background-image:radial-gradient(circle,#c8f0b0 2px,transparent 2.6px);background-size:36px 36px;opacity:.2}
/* ---- Caramelo ---- */
html[data-skin="caramelo"]{--blue:#e0408f;--blue2:#ff7ab6;--red:#16b896;--h1:#a3135f;--h2:#e0408f;--h3:#ff7ab6;--h4:#ffd1e8;
 --sf:"Comic Sans MS","Chalkboard SE","Trebuchet MS",system-ui,sans-serif;--sh:"Comic Sans MS","Chalkboard SE","Trebuchet MS",sans-serif;
 --bgl:radial-gradient(circle,#ff7ab655 4px,transparent 5px) 0 0/58px 58px,radial-gradient(circle,#3ad6b555 3px,transparent 4px) 29px 29px/58px 58px,linear-gradient(135deg,#fff3fa,#eafff8);
 --bgd:radial-gradient(circle,#ff7ab640 3.5px,transparent 4.5px) 0 0/58px 58px,radial-gradient(circle,#3ad6b535 3px,transparent 4px) 29px 29px/58px 58px,linear-gradient(135deg,#2a1230,#13202a);
 --sel:#ff7ab644;--seld:#b3306fcc;--sc:#c2266e;--scd:#ffb3d6;--same:#ffe0f0;--sameD:#4a2060}
html[data-skin="caramelo"] .welcome-hero:before{background-image:radial-gradient(circle,#fff 3px,transparent 3.6px);background-size:30px 30px;opacity:.22}
html[data-skin="caramelo"] .play-button{border-radius:999px}
/* ---- Fuego ---- */
html[data-skin="fuego"]{--blue:#d9381e;--blue2:#ff7a1a;--red:#ffb300;--h1:#2a0805;--h2:#8a1d0c;--h3:#d9381e;--h4:#ffb300;
 --sf:"Trebuchet MS","Segoe UI",system-ui,sans-serif;--sh:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
 --bgl:radial-gradient(circle,#d9381e26 2px,transparent 2.6px) 0 0/44px 44px,linear-gradient(#fff2e8,#ffe3d0);
 --bgd:radial-gradient(ellipse at 50% 110%,#a8280f 0,transparent 55%),radial-gradient(circle,#ff7a1a24 1.6px,transparent 2.2px) 0 0/42px 42px,linear-gradient(#1c0a06,#0b0402);
 --sel:#ff7a1a44;--seld:#b3330fcc;--sc:#c2290f;--scd:#ffb36b;--same:#ffe0d0;--sameD:#5a1f10}
html[data-skin="fuego"] .welcome-hero:before{background-image:radial-gradient(circle,#ffb300 2px,transparent 2.6px);background-size:32px 32px;opacity:.25}
html[data-skin="fuego"] .welcome-hero h1,html[data-skin="fuego"] .mini-games-header h1{letter-spacing:.5px;font-weight:400;text-transform:uppercase}
html[data-skin="fuego"] .welcome-hero h1 em{color:#ffd27a}
/* ---- Minimalista ---- */
html[data-skin="minimalista"]{--blue:#374151;--blue2:#4b5563;--red:#9ca3af;--h1:#111827;--h2:#1f2937;--h3:#374151;--h4:#6b7280;
 --sf:system-ui,-apple-system,"Segoe UI",sans-serif;--sh:system-ui,-apple-system,"Segoe UI",sans-serif;
 --bgl:#fafafa;--bgd:#0e0e10;
 --sel:#37415122;--seld:#ffffff2e;--sc:#111827;--scd:#e5e7eb;--same:#eceef1;--sameD:#26282d}
html[data-skin="minimalista"] .welcome-hero:before{display:none}
html[data-skin="minimalista"] .home-screen:before,html[data-skin="minimalista"] .home-screen .welcome-hero:after{background:#374151}
html[data-skin="minimalista"] .logo-sudoku i:nth-child(n){background:var(--blue)!important;color:#fff!important}
html[data-skin="minimalista"] .logo-sudoku i:nth-child(6),html[data-skin="minimalista"] .logo-sudoku i:nth-child(7),html[data-skin="minimalista"] .logo-sudoku i:nth-child(10),html[data-skin="minimalista"] .logo-sudoku i:nth-child(11){background:#fff!important;color:#111827!important}
html[data-skin="minimalista"] .logo-word strong{background:none;color:var(--blue)}
html[data-skin="minimalista"][data-theme="dark"] .logo-word strong{background:none;color:#e5e7eb}
html[data-skin="minimalista"] .home-screen .welcome-hero h1 em{color:#d1d5db}
html[data-skin="minimalista"] .home-option.art,html[data-skin="minimalista"] .game-card{box-shadow:none!important}

/* ===== 0.2.44 - Maestro Sudomi + sound settings ===== */
.cust-vol{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:12px;font-weight:800;color:#4b5d78}
.cust-vol input{flex:1;accent-color:var(--blue,#0b3d91)}
.cust-vol button{padding:7px 12px;border:0;border-radius:10px;background:#edf3fb;color:#27406a;font-size:12px;font-weight:850}
html[data-theme="dark"] .cust-vol{color:#b9c8dc}html[data-theme="dark"] .cust-vol button{background:#22344f;color:#dbe6f5}
.co-head{display:flex;align-items:center;gap:12px;margin:2px 0 12px}
.co-avatar{display:grid;place-items:center;width:62px;height:62px;flex:0 0 62px;border-radius:50%;background:linear-gradient(135deg,var(--blue,#0b3d91),var(--red,#d62027));font-size:34px;box-shadow:0 6px 16px #0b3d9140}
.co-say b{font-size:17px}.co-say p{margin:2px 0 0;color:#51647f;font-size:13px}
.co-grade{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 6px;padding:14px 16px;border-radius:18px;background:linear-gradient(135deg,var(--h1,#07276b),var(--h3,#1554b9));color:#fff}
.co-grade small{font-size:9px;font-weight:900;letter-spacing:1.3px;opacity:.8}.co-grade b{display:block;font-size:24px;margin:2px 0}.co-grade p{margin:0;font-size:12.5px;opacity:.92}
.co-ring{--p:0;display:grid;place-items:center;width:64px;height:64px;flex:0 0 64px;border-radius:50%;background:conic-gradient(#ffd24a calc(var(--p)*1%),#ffffff2e 0);position:relative}
.co-ring::before{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--h2,#0b3d91)}.co-ring b{position:relative;font-size:19px;margin:0}
.co-tip{display:flex;gap:12px;margin:8px 0;padding:12px 13px;border:1px solid #dce4ef;border-left:5px solid #9db7dc;border-radius:14px;background:#fff}
.co-tip.good{border-left-color:#1fa35b;background:#f1fbf5}.co-tip.warn{border-left-color:#e8890c;background:#fff8ec}.co-tip.idea{border-left-color:#3b82d6}
.co-ic{font-size:26px;flex:0 0 auto}.co-tip b{display:block;font-size:14px}.co-tip p{margin:3px 0 0;color:#51647f;font-size:12.5px;line-height:1.45}
.co-act{margin-top:8px;padding:8px 13px;border:0;border-radius:10px;background:var(--blue,#0b3d91);color:#fff;font-size:12.5px;font-weight:850}
.co-link{display:flex;align-items:center;justify-content:space-between;width:100%;margin:2px 0 12px;padding:12px 14px;border:1.5px solid #cfe0f7;border-radius:15px;background:#f4f8ff;color:var(--blue,#0b3d91);font-size:13.5px;font-weight:850;text-align:left}
.co-link i{font-style:normal;font-size:20px}
html[data-theme="dark"] .co-say p,html[data-theme="dark"] .co-tip p{color:#b9c8dc}
html[data-theme="dark"] .co-tip{background:#16233a;border-color:#2b3a52}html[data-theme="dark"] .co-tip.good{background:#12372a}html[data-theme="dark"] .co-tip.warn{background:#3a2f12}
html[data-theme="dark"] .co-link{background:#1b2b45;border-color:#33466a;color:#8fc4ff}

/* ===== 0.2.47 - Multijugador: carrera ===== */
.race-dialog{max-height:calc(100svh - 24px);overflow-y:auto;text-align:left}
.race-h{margin:14px 0 7px;color:#62738c;font-size:11px;letter-spacing:1.2px;text-transform:uppercase}
.race-diffs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.race-diffs button{padding:10px 4px;border:2px solid #dce4ef;border-radius:12px;background:#fff;color:#10213b;font-size:13px;font-weight:850}
.race-diffs button.on{border-color:var(--blue,#0b3d91);background:#eef4ff;color:var(--blue,#0b3d91)}
.race-riv{display:grid;gap:7px}
.race-riv button{display:flex;align-items:center;gap:12px;padding:11px 12px;border:2px solid #dce4ef;border-radius:14px;background:#fff;color:#10213b;text-align:left}
.race-riv button.on{border-color:var(--red,#d62027);background:#fff4f4}
.race-riv .ri{font-size:30px}.race-riv div{flex:1;min-width:0}
.race-riv b{display:block;font-size:14px}.race-riv b em{margin-left:4px;padding:1px 7px;border-radius:999px;background:#eef3fa;color:#51647f;font-size:10px;font-style:normal}
.race-riv small{display:block;color:#718097;font-size:11.5px;margin-top:1px}
.race-riv .rc{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--red,#d62027);color:#fff;font-style:normal;font-size:13px;font-weight:900;opacity:0}
.race-riv button.on .rc{opacity:1}
.race-note{margin:10px 0 6px!important;color:#51647f;font-size:12.5px;font-weight:700}
.race-modes{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px}
.race-modes span{padding:6px 10px;border:1px dashed #c4d0e2;border-radius:999px;color:#8491a4;font-size:11.5px;font-weight:700}
.race-modes em{margin-left:4px;color:#b07a00;font-style:normal;font-weight:900}
.race-bar{margin:8px 0 0;padding:10px 12px;border:1px solid #f0c8cc;border-radius:14px;background:#fff7f7}
.rb-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12.5px}
.rb-top button{padding:3px 9px;border:0;border-radius:8px;background:#f3d9dc;color:#a51c24;font-size:11px;font-weight:850}
.rb-row{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:12.5px}
.rb-ic{width:24px;text-align:center;font-size:17px}.rb-row b{width:76px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.rb-track{flex:1;height:9px;border-radius:6px;background:#ecd6d8;overflow:hidden}.rb-track i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#ff8a5c,#d62027);transition:width .9s linear}
.rb-row.me .rb-track i{background:linear-gradient(90deg,#34c27a,#17a35a)}
.rb-row.fin b,.rb-row.fin em{color:#a51c24}
.rb-row em{width:34px;text-align:right;font-style:normal;font-size:11.5px;font-weight:800}
body.racing #hintBtn{opacity:.45}
.race-sum{margin:12px 0 4px;padding:12px 14px;border:1px solid #f0c8cc;border-radius:15px;background:#fff4f4;text-align:left}
.race-sum.won{border-color:#bfe0c9;background:#eefaf2}
.race-sum h4{margin:0 0 6px;font-size:14px}
.race-sum table{width:100%;border-collapse:collapse;font-size:13.5px}.race-sum td{padding:4px 0}.race-sum td:last-child{text-align:right;font-weight:800}.race-sum tr.me td{font-weight:900}
.race-sum p{margin:6px 0 0!important;font-size:12px;color:#718097!important}
@media(prefers-reduced-motion:reduce){.rb-track i{transition:none}}
html[data-theme="dark"] .race-diffs button,html[data-theme="dark"] .race-riv button{background:#16233a;border-color:#2b3a52;color:#e6edf7}
html[data-theme="dark"] .race-diffs button.on{background:#1b2b45;border-color:#8fc4ff;color:#8fc4ff}
html[data-theme="dark"] .race-riv button.on{background:#3a1f28;border-color:#ff6b73}
html[data-theme="dark"] .race-riv small,html[data-theme="dark"] .race-note{color:#93a3ba}html[data-theme="dark"] .race-riv b em{background:#22344f;color:#b9c8dc}
html[data-theme="dark"] .race-modes span{border-color:#33466a;color:#93a3ba}
html[data-theme="dark"] .race-bar{background:#2a1a22;border-color:#6b2c34}html[data-theme="dark"] .rb-track{background:#4a2a32}html[data-theme="dark"] .rb-top button{background:#4a2a32;color:#ff9aa1}
html[data-theme="dark"] .race-sum{background:#2a1a22;border-color:#6b2c34}html[data-theme="dark"] .race-sum.won{background:#12372a;border-color:#2c6b4c}

/* ===== 0.2.48 - Multijugador button beside Jugar + its own full screen ===== */
html .hero-actions{width:100%;max-width:470px;flex-direction:row;flex-wrap:nowrap;gap:9px}
html .hero-actions .play-button{flex:1 1 0;width:auto;min-width:0;gap:9px;padding:10px 12px}
html .hero-actions .play-button .play-chevron{display:none}
html .hero-actions .play-button small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.multi-button{flex:1 1 0;min-width:0;min-height:63px;display:flex;align-items:center;gap:9px;padding:10px 12px;border:2px solid #ffffff66;border-radius:16px;background:linear-gradient(105deg,#a3132a,var(--red,#d62027));color:#fff;text-align:left;box-shadow:0 10px 22px #00000030;transition:transform .16s ease,box-shadow .16s ease}
.multi-button:hover{transform:translateY(-2px);box-shadow:0 14px 26px #00000040}
.multi-button:focus-visible{outline:3px solid #fff;outline-offset:3px}
.mb-icon{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:11px;background:#ffffff2e;font-size:18px}
.multi-button span:nth-child(2){display:flex;flex-direction:column;gap:2px;min-width:0}
.multi-button strong{margin:0;font-size:15px;line-height:1.1;white-space:nowrap}
.multi-button small{color:#ffe3e5;font-size:10px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:560px){html .hero-actions{gap:7px}.multi-button strong{font-size:13.5px}.mb-icon{width:30px;height:30px;flex-basis:30px;font-size:15px}html .hero-actions .play-icon{width:30px;height:30px;flex-basis:30px}html .hero-actions .play-button strong{font-size:14px}}
@media(max-width:370px){.mb-icon{display:none}html .hero-actions .play-icon{display:none}}
.soon-row{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:560px){.soon-row{grid-template-columns:1fr}}
.race-screen{position:fixed;inset:0;z-index:60;overflow-y:auto;background:var(--bgl,linear-gradient(#f7f9fd,#eaf0f8));color:#10213b;-webkit-overflow-scrolling:touch}
html[data-theme="dark"] .race-screen{background:var(--bgd,linear-gradient(#0f1b30,#0b1424));color:#e6edf7}
.race-screen.hidden{display:none}
.rs-shell{width:min(640px,100%);margin:0 auto;padding:max(18px,calc(var(--sat) + 10px)) 16px 36px}
.rs-head{display:flex;align-items:center;gap:16px;margin:4px 0 14px;padding-bottom:14px;border-bottom:1px solid #dfe5ee}
.rs-head p{margin:0 0 3px;color:var(--red,#d62027);font-size:9px;font-weight:900;letter-spacing:1.7px}.rs-head h1{margin:0;font-size:clamp(22px,6vw,30px);letter-spacing:-.6px}
.rs-intro{margin:0 0 6px;color:#51647f;font-size:13.5px;line-height:1.5}
.rs-h{margin:18px 0 8px;color:#62738c;font-size:11px;letter-spacing:1.3px;text-transform:uppercase}.rs-h small{margin-left:6px;color:#9aa6b6;letter-spacing:0;font-size:11px}
.rs-bots{display:grid;gap:9px}
.rs-bot{display:flex;align-items:center;gap:12px;padding:13px;border:2px solid #dce4ef;border-radius:16px;background:#fff;opacity:.78}
.rs-bot.on{opacity:1;border-color:var(--red,#d62027);background:#fff6f6}
.rs-bot .ri{font-size:34px}.rb-info{flex:1;min-width:0}.rb-info b{display:block;font-size:15px}.rb-info b em{margin-left:5px;padding:1px 8px;border-radius:999px;background:#eef3fa;color:#51647f;font-size:10px;font-style:normal}
.rb-info small{display:block;margin-top:2px;color:#718097;font-size:12px;line-height:1.35}
.rs-step{display:flex;align-items:center;gap:8px}.rs-step b{min-width:22px;text-align:center;font-size:19px}
.rs-step button{width:38px;height:38px;border:0;border-radius:12px;background:var(--blue,#0b3d91);color:#fff;font-size:22px;font-weight:900;line-height:1}.rs-step button:disabled{opacity:.28}
.rs-go{display:flex;align-items:center;gap:13px;width:100%;margin:16px 0 0;padding:14px 16px;border:0;border-radius:18px;background:linear-gradient(105deg,#a3132a,var(--red,#d62027));color:#fff;text-align:left;box-shadow:0 12px 26px #d6202744}
.rs-go span{font-size:28px}.rs-go div{flex:1}.rs-go strong{display:block;margin:0;font-size:18px}.rs-go small{display:block;color:#ffe3e5;font-size:12px}.rs-go i{font-style:normal;font-size:30px}.rs-go:disabled{opacity:.4;box-shadow:none}
html[data-theme="dark"] .rs-head{border-bottom-color:#2b3a52}html[data-theme="dark"] .rs-intro,html[data-theme="dark"] .rb-info small{color:#93a3ba}
html[data-theme="dark"] .rs-bot{background:#16233a;border-color:#2b3a52}html[data-theme="dark"] .rs-bot.on{background:#3a1f28;border-color:#ff6b73}
html[data-theme="dark"] .rb-info b em{background:#22344f;color:#b9c8dc}
.race-diffs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.race-diffs button{padding:11px 4px;border:2px solid #dce4ef;border-radius:12px;background:#fff;color:#10213b;font-size:13px;font-weight:850}
.race-diffs button.on{border-color:var(--blue,#0b3d91);background:#eef4ff;color:var(--blue,#0b3d91)}
.race-note{margin:12px 0 6px!important;color:#51647f;font-size:12.5px;font-weight:700}
.race-modes{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 4px}
.race-modes span{padding:6px 10px;border:1px dashed #c4d0e2;border-radius:999px;color:#8491a4;font-size:11.5px;font-weight:700}.race-modes em{margin-left:4px;color:#b07a00;font-style:normal;font-weight:900}

/* ===== 0.2.49 - Multijugador online: lobby, duel, results ===== */
.m-modes{display:grid;gap:9px}
.m-modes button,.m-card{display:flex;align-items:center;gap:13px;padding:14px;border:2px solid #dce4ef;border-radius:16px;background:#fff;color:#10213b;text-align:left;width:100%}
.m-modes button span,.m-card>span{font-size:32px}.m-modes div,.m-card div{flex:1;min-width:0}.m-modes b,.m-card b{display:block;font-size:15px}.m-modes small,.m-card small{display:block;margin-top:2px;color:#718097;font-size:12px;line-height:1.35}.m-modes i{font-style:normal;font-size:26px;color:#9aa6b6}
.m-cards{display:grid;gap:10px;margin-top:12px}
.m-card.static{cursor:default}
.m-bots{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.m-bots button{padding:8px 12px;border:0;border-radius:11px;background:var(--blue,#0b3d91);color:#fff;font-size:12.5px;font-weight:850}
.m-join{display:flex;gap:8px;margin-top:8px}.m-join input{flex:1;min-width:0;padding:11px 12px;border:2px solid #d3dbe8;border-radius:12px;font-size:17px;font-weight:800;letter-spacing:2px;text-transform:uppercase;background:#fff;color:#10213b}
.m-join button{padding:0 16px;border:0;border-radius:12px;background:var(--red,#d62027);color:#fff;font-weight:850}
.m-status{margin:12px 0 0!important;padding:10px 12px;border-radius:12px;background:#fff6df;color:#7a5200!important;font-size:13px;font-weight:700}.m-status.big{text-align:center;font-size:15px;padding:18px}
.m-code{margin:10px 0 4px;padding:16px;border-radius:18px;background:linear-gradient(135deg,var(--h1,#07276b),var(--h3,#1554b9));color:#fff;text-align:center}
.m-code small{font-size:10px;font-weight:900;letter-spacing:1.4px;opacity:.8}.m-code b{display:block;margin:4px 0 8px;font-size:34px;letter-spacing:5px}
.m-code button{padding:9px 16px;border:0;border-radius:12px;background:#fff;color:var(--blue,#0b3d91);font-size:13px;font-weight:850}
.m-players{display:grid;gap:7px}
.m-pl{display:flex;align-items:center;gap:11px;padding:11px 13px;border:2px solid #dce4ef;border-radius:14px;background:#fff}
.m-pl.me{border-color:var(--blue,#0b3d91);background:#eef4ff}.m-pl.empty{opacity:.55;border-style:dashed}
.m-pl span{font-size:26px}.m-pl b{flex:1;font-size:14.5px}.m-pl em{padding:2px 8px;border-radius:999px;background:#eef3fa;color:#51647f;font-size:10.5px;font-style:normal;font-weight:800}.m-pl em.away{background:#fff0f1;color:#a51c24}
.multi-result{position:fixed;inset:0;z-index:9200;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(10,24,48,.62);backdrop-filter:blur(4px)}
.mr-card{width:min(420px,100%);padding:22px;border-radius:22px;background:#fff;color:#10213b;box-shadow:0 24px 70px #0006;text-align:center}
.mr-card h2{margin:0 0 10px;font-size:24px}.mr-card table{width:100%;border-collapse:collapse;margin:6px 0 8px;font-size:14.5px}.mr-card td{padding:7px 4px;border-bottom:1px solid #e6ecf4;text-align:left}.mr-card td:last-child{text-align:right;font-weight:800}.mr-card tr.me td{font-weight:900;color:var(--blue,#0b3d91)}
.mr-card p{margin:6px 0 12px;color:#8a6a00;font-weight:800}
.mr-act{display:flex;gap:8px;justify-content:center;align-items:center}.mr-act button{padding:11px 18px;border:0;border-radius:12px;background:var(--blue,#0b3d91);color:#fff;font-weight:850}.mr-act #mrExit{background:#edf3fb;color:#27406a}.mr-act small{color:#8491a4}
/* duel */
.duel-screen{z-index:70}
.duel-shell{width:min(560px,100%)}
.du-score{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:2px 0 8px}
.du-score i{font-style:normal;font-weight:900;color:#9aa6b6;font-size:13px}
.du-pl{display:flex;align-items:center;gap:8px;padding:9px 11px;border:2px solid #dce4ef;border-radius:14px;background:#fff;opacity:.7}
.du-pl.turn{opacity:1;border-color:var(--red,#d62027);box-shadow:0 0 0 3px #d6202722}
.du-pl.me b{color:var(--blue,#0b3d91)}
.du-pl span{font-size:24px}.du-pl b{flex:1;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.du-pl em{font-style:normal;font-size:22px;font-weight:900}
.du-timer{position:relative;height:26px;border-radius:13px;background:#e5ecf6;overflow:hidden}.du-timer i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#34c27a,#17a35a);transition:width 1s linear}
.du-timer.low i{background:linear-gradient(90deg,#ff8a5c,#d62027)}.du-timer b{position:relative;display:block;text-align:center;line-height:26px;font-size:13px}
.du-msg{margin:8px 0!important;text-align:center;font-size:13.5px;font-weight:800;color:#51647f}.du-msg.mine{color:var(--red,#d62027)}
.dg{width:min(100%,430px);aspect-ratio:1;margin:6px auto;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);border:2px solid #10213b;border-radius:8px;background:#fff;overflow:hidden}
.dg.wait{opacity:.92}
.dc{display:flex;align-items:center;justify-content:center;min-width:0;padding:0;border:0;border-right:1px solid #d3dbe8;border-bottom:1px solid #d3dbe8;background:#fff;color:#10213b;font-weight:800;font-size:clamp(15px,5vw,24px);line-height:1}
.dc.dbr{border-right:2px solid #10213b}.dc.dbb{border-bottom:2px solid #10213b}
.dc.dgiven{color:#14233b}.dc.dp0{color:#1e4bd8}.dc.dp1{color:#d62027}
.dc.dsel{background:#bfe0ff}.dc.dsame{background:#dcecff}.dc.dbad{background:#ffd9dc}.dc.dnew{background:#d6f5df}
.dk{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;width:min(100%,430px);margin:8px auto 0}
.dk button{min-height:46px;border:0;border-radius:11px;background:#eef3fa;color:#10213b;font-size:19px;font-weight:850}.dk button:disabled{opacity:.35}
@media(prefers-reduced-motion:reduce){.du-timer i{transition:none}}
html[data-theme="dark"] .m-modes button,html[data-theme="dark"] .m-card,html[data-theme="dark"] .m-pl,html[data-theme="dark"] .du-pl{background:#16233a;border-color:#2b3a52;color:#e6edf7}
html[data-theme="dark"] .m-pl.me{background:#1b2b45;border-color:#8fc4ff}html[data-theme="dark"] .m-modes small,html[data-theme="dark"] .m-card small{color:#93a3ba}
html[data-theme="dark"] .m-join input{background:#16233a;border-color:#33466a;color:#e6edf7}html[data-theme="dark"] .m-pl em{background:#22344f;color:#b9c8dc}
html[data-theme="dark"] .m-status{background:#3a2f12;color:#f2cf7a!important}
html[data-theme="dark"] .mr-card{background:#16233a;color:#e6edf7}html[data-theme="dark"] .mr-card td{border-bottom-color:#2b3a52}html[data-theme="dark"] .mr-card tr.me td{color:#8fc4ff}html[data-theme="dark"] .mr-act #mrExit{background:#22344f;color:#dbe6f5}
html[data-theme="dark"] .du-timer{background:#22344f}html[data-theme="dark"] .du-msg{color:#b9c8dc}
html[data-theme="dark"] .dg,html[data-theme="dark"] .dc{background:#16233a;border-color:#2b3a52;color:#e6edf7}html[data-theme="dark"] .dg{border-color:#8da2c4}html[data-theme="dark"] .dc.dbr{border-right-color:#8da2c4}html[data-theme="dark"] .dc.dbb{border-bottom-color:#8da2c4}
html[data-theme="dark"] .dc.dp0{color:#7fb0ff}html[data-theme="dark"] .dc.dp1{color:#ff8a92}html[data-theme="dark"] .dc.dsel{background:#24589c}html[data-theme="dark"] .dc.dsame{background:#1d3a63}html[data-theme="dark"] .dc.dbad{background:#5a2229}html[data-theme="dark"] .dc.dnew{background:#14432b}
html[data-theme="dark"] .dk button{background:#22344f;color:#e6edf7}

/* ===== 0.2.51 - install polish: "Mis datos y la app" ===== */
.cust-info{margin:0 0 10px;padding:0;list-style:none;display:grid;gap:5px;font-size:12.5px;color:#4b5d78}
.cust-info b{color:#10213b}
.cust-data{display:grid;gap:7px}
.cust-data button{padding:11px 12px;border:1.5px solid #cfe0f7;border-radius:12px;background:#f4f8ff;color:var(--blue,#0b3d91);font-size:13px;font-weight:850;text-align:left}
html[data-theme="dark"] .cust-info{color:#b9c8dc}html[data-theme="dark"] .cust-info b{color:#e6edf7}
html[data-theme="dark"] .cust-data button{background:#1b2b45;border-color:#33466a;color:#8fc4ff}

/* ===== 0.2.52 - play without internet: QR pairing screen ===== */
.qr-pair{position:fixed;inset:0;z-index:9400;display:flex;align-items:center;justify-content:center;padding:max(10px,var(--sat)) 10px max(10px,var(--sab));background:rgba(10,24,48,.78);overflow-y:auto}
.qp-card{position:relative;width:min(420px,100%);max-height:100%;overflow-y:auto;padding:22px 18px 16px;border-radius:24px;background:#fff;color:#10213b;text-align:center;box-shadow:0 24px 70px #0007}
.qp-x{position:absolute;top:10px;right:10px;width:34px;height:34px;border:0;border-radius:11px;background:#eff3f8;color:#63738a;font-size:15px}
.qp-kicker{margin:0 0 4px;color:var(--red,#d62027);font-size:10px;font-weight:900;letter-spacing:1.5px}
.qp-title{margin:0 0 6px;font-size:22px}
.qp-help{margin:0 0 12px;color:#51647f;font-size:13.5px;line-height:1.45}
.qp-stage{display:grid;place-items:center;min-height:120px}
.qp-qr{width:min(330px,calc(100vw - 70px));height:auto;aspect-ratio:1;border:1px solid #dce4ef;border-radius:12px;background:#fff;image-rendering:pixelated}
.qp-cam{position:relative;width:min(300px,calc(100vw - 70px));aspect-ratio:1;overflow:hidden;border-radius:18px;background:#000}
.qp-cam video{width:100%;height:100%;object-fit:cover}
.qp-frame{position:absolute;inset:14%;border:3px solid #ffd24a;border-radius:16px;box-shadow:0 0 0 999px #0005}
.qp-wait{margin:10px 0 0;color:#8a6a00;font-size:13px;font-weight:800}
.qp-act{margin-top:6px}
.qp-btn{width:100%;margin-top:10px;padding:13px 16px;border:0;border-radius:14px;background:var(--blue,#0b3d91);color:#fff;font-size:15px;font-weight:850}
.qp-note{margin:12px 0 0;color:#8491a4;font-size:11.5px;line-height:1.4}
.qp-err{margin:10px 0;padding:12px;border-radius:12px;background:#fff0f1;color:#a51c24;font-size:13px}
.qp-bigicon{font-size:64px;margin:6px 0}
html[data-theme="dark"] .qp-card{background:#16233a;color:#e6edf7}html[data-theme="dark"] .qp-help{color:#b9c8dc}html[data-theme="dark"] .qp-x{background:#22344f;color:#b9c8dc}
html[data-theme="dark"] .qp-wait{color:#f2cf7a}html[data-theme="dark"] .qp-err{background:#3a1f28;color:#ff9aa1}
.qr-mode-btn{border:2px dashed #9db7dc!important}

/* ===== 0.2.53 - Rankings button in the hero + ranking screen ===== */
.rank-button{flex:1 1 100%;display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid #ffffff55;border-radius:14px;background:#ffffff1f;color:#fff;text-align:left}
.rank-button:hover{background:#ffffff33}
.rank-button:focus-visible{outline:3px solid #fff;outline-offset:3px}
.rank-button .rb-ic{font-size:20px}.rank-button strong{margin:0;font-size:14px;color:#fff}.rank-button small{display:block;color:#ffffffcc;font-size:10.5px;font-weight:650}
.rank-button i{margin-left:auto;font-style:normal;font-size:24px;opacity:.85}
html .hero-actions{flex-wrap:wrap}
.rk-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:4px;border-radius:13px;background:#edf3fb;margin-bottom:8px}
.rk-tabs button{padding:10px 4px;border:0;border-radius:10px;background:transparent;color:#4b5d78;font-size:13px;font-weight:850}
.rk-tabs button.on{background:#fff;color:var(--blue,#0b3d91);box-shadow:0 2px 8px #183b6722}
.rk-diffs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:8px}
.rk-diffs button{padding:8px 2px;border:1.5px solid #dce4ef;border-radius:10px;background:#fff;color:#4b5d78;font-size:12px;font-weight:800}
.rk-diffs button.on{border-color:var(--blue,#0b3d91);color:var(--blue,#0b3d91);background:#eef4ff}
.rk-sub{margin:6px 2px;color:#62738c;font-size:12px;font-weight:700}
.rk-me{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0}
.rk-me div{padding:11px 12px;border-radius:14px;background:linear-gradient(135deg,var(--h1,#07276b),var(--h3,#1554b9));color:#fff}
.rk-me small{display:block;font-size:9px;font-weight:900;letter-spacing:1.1px;opacity:.8}.rk-me b{font-size:20px}
.rk-me.none div{opacity:.6}
.rk-hint{margin:6px 2px 10px;color:#51647f;font-size:12.5px;line-height:1.4}
.rk-list{display:grid;gap:6px}
.rk-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid #dce4ef;border-radius:14px;background:#fff}
.rk-row.top{border-color:#f0d27a;background:#fff9e5}
.rk-row.me{border-color:var(--blue,#0b3d91);background:#eef4ff;box-shadow:0 0 0 2px #0b3d9133}
.rk-pos{width:30px;text-align:center;font-size:18px;font-weight:900;color:#62738c}
.rk-av{font-size:24px}
.rk-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.rk-name i{font-style:normal}
.rk-val{font-size:16px;font-weight:900}.rk-val small{margin-left:3px;color:#8491a4;font-size:10px;font-weight:700}
html[data-theme="dark"] .rk-tabs{background:#1b2b45}html[data-theme="dark"] .rk-tabs button{color:#b9c8dc}html[data-theme="dark"] .rk-tabs button.on{background:#2b4468;color:#fff}
html[data-theme="dark"] .rk-diffs button{background:#16233a;border-color:#2b3a52;color:#b9c8dc}html[data-theme="dark"] .rk-diffs button.on{background:#1b2b45;border-color:#8fc4ff;color:#8fc4ff}
html[data-theme="dark"] .rk-sub,html[data-theme="dark"] .rk-hint{color:#93a3ba}
html[data-theme="dark"] .rk-row{background:#16233a;border-color:#2b3a52}html[data-theme="dark"] .rk-row.top{background:#2d2610;border-color:#6b5420}html[data-theme="dark"] .rk-row.me{background:#1b2b45;border-color:#8fc4ff}
html[data-theme="dark"] .rk-pos{color:#93a3ba}

/* 0.2.53 — Entrenamiento, Profesor, Perfil, Configuración, Sincronizar */
#modal{z-index:9600}
.tr-intro{margin:6px 2px 10px;font-size:14px;line-height:1.45;color:#3d4f6b}
.tr-cards{display:grid;gap:10px}
.tr-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border:1px solid #d3dbe8;border-radius:16px;background:#fff;color:#14233b;font:inherit;cursor:pointer;position:relative}
.tr-card>span{font-size:28px}.tr-card b{display:block;font-size:16px}.tr-card small{display:block;color:#5b6b85;font-size:13px;margin-top:2px}
.tr-card em{margin-left:auto;font-style:normal;font-size:12px;font-weight:700;color:#0b4fb3;background:#e6f0ff;border-radius:999px;padding:4px 9px;white-space:nowrap}
.tr-card:active{transform:scale(.99)}
.tr-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;color:#14233b}.tr-top span{color:#5b6b85;font-weight:700}
.tr-grid .tc{cursor:pointer}
.tr-q{margin:6px 2px;font-size:15px;line-height:1.4;color:#14233b;text-align:center}
.tr-next{display:block;margin:10px auto 0;padding:12px 26px;border:0;border-radius:999px;background:#0b4fb3;color:#fff;font:inherit;font-weight:800;cursor:pointer}
.tr-end{text-align:center;padding:18px 8px}.tr-end>span{font-size:54px;display:block}.tr-end h3{margin:8px 0;font-size:22px;color:#14233b}.tr-end p{color:#3d4f6b;margin:6px 0}
.tr-xp{font-weight:800;color:#127040!important;font-size:18px}
.tr-act{display:flex;gap:10px;justify-content:center;margin-top:14px}.tr-act button{padding:12px 20px;border:1px solid #0b4fb3;border-radius:999px;background:#fff;color:#0b4fb3;font:inherit;font-weight:800;cursor:pointer}.tr-act button:first-child{background:#0b4fb3;color:#fff}
.tc-bar{height:8px;border-radius:99px;background:#e1e8f3;overflow:hidden;margin:6px 0}.tc-bar i{display:block;height:100%;background:linear-gradient(90deg,#1fa35b,#0b4fb3);transition:width .3s}
.tc-say{display:flex;gap:10px;align-items:flex-start;background:#eef4ff;border-radius:14px;padding:10px 12px;margin:8px 0}.tc-say span{font-size:26px}.tc-say p{margin:0;font-size:14.5px;line-height:1.45;color:#14233b}
.tc-btns{display:flex;gap:10px;margin:8px 0}.tc-btns button{flex:1;padding:12px 10px;border:1px solid #c5d2e6;border-radius:14px;background:#fff;color:#14233b;font:inherit;font-weight:700;cursor:pointer}.tc-btns button.main{background:#0b4fb3;border-color:#0b4fb3;color:#fff}.tc-btns.small button{padding:9px 8px;font-size:13px;font-weight:600}.tc-btns button:disabled{opacity:.45}
.pf-card{display:flex;gap:14px;align-items:center;padding:14px;border-radius:18px;background:linear-gradient(135deg,#0b4fb3,#2a7de1);color:#fff}
.pf-av{width:68px;height:68px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:38px;flex:none}
.pf-main{min-width:0;flex:1}.pf-main b{display:block;font-size:20px;overflow:hidden;text-overflow:ellipsis}.pf-main span,.pf-main small{display:block;font-size:13px;opacity:.92}
.pf-main .lv-bar{margin:6px 0}.pf-king{text-align:center;font-size:15px;margin:10px 0;color:#8a5a00}
.set-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 12px;margin-top:8px;border:1px solid #d3dbe8;border-radius:14px;background:#fff;color:#14233b;font:inherit;cursor:pointer;text-decoration:none;box-sizing:border-box}
.set-row>span{font-size:22px}.set-row>div{flex:1;min-width:0}.set-row b{display:block;font-size:15px}.set-row small{display:block;color:#5b6b85;font-size:12.5px;margin-top:1px}.set-row>i{font-style:normal;font-size:22px;color:#8a99b0}
.set-row.danger{border-color:#f0c4c4;background:#fff6f6}.set-row.danger b{color:#b3261e}.set-row.armed{background:#b3261e}.set-row.armed b,.set-row.armed small{color:#fff}
.set-l{display:block;margin-bottom:6px;font-size:14px}
.ab-card{text-align:center;padding:22px 10px;border-radius:18px;background:linear-gradient(135deg,#0b4fb3,#d6293e);color:#fff;margin-bottom:10px}.ab-logo{font-size:34px;font-weight:900;letter-spacing:4px}.ab-card p{margin:8px 0}.ab-card small{opacity:.85}
.sy-table{display:grid;gap:6px;margin:12px auto;max-width:340px}.sy-table>div{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:6px;align-items:center;padding:8px 10px;border-radius:12px;background:#eef4ff;color:#14233b}.sy-table small{font-size:13px;color:#3d4f6b}.sy-table b{text-align:right}.sy-table span{text-align:right;color:#5b6b85}
html[data-theme="dark"] .tr-intro,html[data-theme="dark"] .tr-end p,html[data-theme="dark"] .tr-card small,html[data-theme="dark"] .set-row small{color:#b9c8dc}
html[data-theme="dark"] .tr-card,html[data-theme="dark"] .set-row,html[data-theme="dark"] .tc-btns button{background:#16233a;border-color:#2b3a52;color:#e8eefb}
html[data-theme="dark"] .tr-card b,html[data-theme="dark"] .tr-top,html[data-theme="dark"] .tr-q,html[data-theme="dark"] .tr-end h3,html[data-theme="dark"] .tc-say p,html[data-theme="dark"] .set-row b{color:#e8eefb}
html[data-theme="dark"] .tc-say,html[data-theme="dark"] .sy-table>div{background:#1b2b45;color:#e8eefb}html[data-theme="dark"] .tc-btns button.main{background:#2a7de1;border-color:#2a7de1;color:#fff}
html[data-theme="dark"] .tr-card em{background:#1b2b45;color:#8fc0ff}html[data-theme="dark"] .set-row.danger{background:#2a1618;border-color:#5a2a2e}
html[data-theme="dark"] .tr-act button{background:#16233a;color:#8fc0ff;border-color:#2a7de1}html[data-theme="dark"] .tr-act button:first-child{background:#2a7de1;color:#fff}

/* 0.2.55 — "Otros juegos" más bonitos + apagado de efectos */
#miniGameStage .mini-game{background:linear-gradient(180deg,#fff 0%,#f3f7ff 100%);border:1px solid #cfdcf0;box-shadow:0 16px 38px #0b3d9120,inset 0 1px 0 #fff}
#miniGameStage .mini-game::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,#0b4fb3 0 38%,#fff 38% 62%,#d6293e 62%);opacity:.9}
#miniGameStage .mini-game-head h2{background:linear-gradient(90deg,#0b3d91,#2a7de1);-webkit-background-clip:text;background-clip:text;color:transparent}
#miniGameStage .turn-indicator{background:linear-gradient(135deg,#e6f0ff,#fff);border:1px solid #bcd3f5;box-shadow:0 2px 6px #0b4fb314}
#miniGameStage .game-restart{background:linear-gradient(180deg,#fff,#eef4ff);border:1px solid #c9d8ee;box-shadow:0 2px 0 #c9d8ee;transition:transform .12s,box-shadow .12s}
#miniGameStage .game-restart:active{transform:translateY(2px);box-shadow:0 0 0 #c9d8ee}
/* Tres en raya */
#miniGameStage .ttt-board{background:linear-gradient(145deg,#dbe8fb,#c4d8f6);box-shadow:inset 0 2px 8px #0b3d9122}
#miniGameStage .ttt-cell{background:linear-gradient(180deg,#fff,#f1f6ff);border:1px solid #c6d6ef;box-shadow:0 4px 0 #b8cae6,0 8px 14px #0b3d9114;transition:transform .12s}
#miniGameStage .ttt-cell:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 #b8cae6}
#miniGameStage .ttt-cell.mark-x .ttt-mark{color:#0b4fb3;text-shadow:0 0 14px #2a7de155,0 3px 0 #9fc0f2}
#miniGameStage .ttt-cell.mark-o .ttt-mark{color:#d6293e;text-shadow:0 0 14px #d6293e44,0 3px 0 #f0a7ae}
/* 4 en línea */
#miniGameStage .connect-board{background:linear-gradient(145deg,#1f86e0,#0b3d91);border:3px solid #0a2f73;box-shadow:0 12px 26px #0b3d9138,inset 0 2px 0 #ffffff44}
#miniGameStage .connect-slot{background:radial-gradient(circle at 50% 40%,#0a2f73 0 60%,#0d3a85 100%);border-radius:50%;box-shadow:inset 0 4px 8px #0006,0 1px 0 #ffffff33}
#miniGameStage .connect-slot.red-disc{background:radial-gradient(circle at 35% 30%,#ff9aa2,#e0323f 45%,#a5121e);box-shadow:inset 0 -4px 6px #0005,inset 0 3px 5px #fff6,0 0 10px #d6293e55}
#miniGameStage .connect-slot.yellow-disc{background:radial-gradient(circle at 35% 30%,#fff3a6,#f6c81f 45%,#c58f00);box-shadow:inset 0 -4px 6px #0004,inset 0 3px 5px #fff8,0 0 10px #f3c84455}
/* Damas y ajedrez */
#miniGameStage .checkers-board,#miniGameStage .chess-board{box-shadow:0 12px 26px #3b25102e,inset 0 0 0 3px #5a3a1d}
#miniGameStage .checker-piece{box-shadow:0 4px 0 #0006,0 8px 10px #0004,inset 0 3px 5px #fff6,inset 0 -4px 6px #0005}
#miniGameStage .checker-piece.red-piece{background:radial-gradient(circle at 35% 30%,#ff8c95,#d6293e 55%,#8f1020)}
#miniGameStage .checker-piece.black-piece{background:radial-gradient(circle at 35% 30%,#6b7585,#222a38 55%,#0a0e16)}
#miniGameStage .chess-cell{transition:filter .12s}
#miniGameStage .chess-cell:hover{filter:brightness(1.08)}
/* Buscaminas */
#miniGameStage .mine-grid{background:linear-gradient(145deg,#8fa3bd,#6f86a5);box-shadow:inset 0 2px 6px #0003}
#miniGameStage .mine-cell:not(.revealed){background:linear-gradient(180deg,#f6f9ff,#d8e3f3);box-shadow:inset 0 -3px 0 #b3c4dc,inset 0 2px 0 #fff}
#miniGameStage .mine-cell.revealed{background:#fbfdff;box-shadow:inset 0 1px 3px #0b3d9122}
/* mesas de cartas y fichas (fieltro) */
#miniGameStage .arc-felt{background:radial-gradient(ellipse at 50% 35%,#2e9b63 0,#15734a 55%,#0c4a2f 100%);box-shadow:inset 0 0 40px #0008,0 10px 22px #0c4a2f40;border:3px solid #3b2a14}
#miniGameStage .arc-chip{background:linear-gradient(180deg,#fff,#eef4ff);border:1px solid #c6d6ef;box-shadow:0 3px 8px #0b3d9114}
#miniGameStage .arc-chip.turn{border-color:#0b4fb3;box-shadow:0 0 0 3px #2a7de133,0 6px 14px #0b4fb326}
#miniGameStage .arc-msg{background:linear-gradient(90deg,#e6f0ff,#fff,#e6f0ff);border:1px solid #c6d6ef}
#miniGameStage .arc-btn{background:linear-gradient(180deg,#2a7de1,#0b4fb3);border:0;color:#fff;box-shadow:0 4px 0 #083a85,0 8px 14px #0b4fb340;transition:transform .12s,box-shadow .12s}
#miniGameStage .arc-btn:active{transform:translateY(3px);box-shadow:0 1px 0 #083a85}
#miniGameStage .arc-btn.alt{background:linear-gradient(180deg,#fff,#eef4ff);color:#0b4fb3;border:1px solid #bcd3f5;box-shadow:0 3px 0 #c6d6ef}
#miniGameStage .pcard{box-shadow:0 3px 8px #0006,0 1px 0 #fff inset;border-radius:8px}
/* Memoria */
#miniGameStage .mc-back{background:repeating-linear-gradient(45deg,#1f6fd1 0 8px,#2a7de1 8px 16px);box-shadow:0 4px 0 #0a3f8f,0 8px 12px #0b3d9133,inset 0 0 0 3px #ffffff55}
#miniGameStage .mc-face{background:linear-gradient(180deg,#fff,#fff5d6);box-shadow:0 4px 0 #e5cf8c,0 8px 12px #8a670b22}
/* Puntos y cajas */
#miniGameStage .dots-board .dd{filter:drop-shadow(0 1px 1px #0b3d9144)}
/* tarjeta de fin de partida */
.game-end-card{background:linear-gradient(180deg,#fff,#eaf2ff)!important;border:2px solid #f3c844;box-shadow:0 18px 44px #0b3d9150,0 0 0 6px #f3c84433!important}
.game-end-card h3{background:linear-gradient(90deg,#0b4fb3,#d6293e);-webkit-background-clip:text;background-clip:text;color:transparent}
/* modo noche */
html[data-theme="dark"] #miniGameStage .mini-game{background:linear-gradient(180deg,#16233a,#101b2e);border-color:#2b3a52}
html[data-theme="dark"] #miniGameStage .turn-indicator,html[data-theme="dark"] #miniGameStage .game-restart,html[data-theme="dark"] #miniGameStage .arc-chip,html[data-theme="dark"] #miniGameStage .arc-msg{background:linear-gradient(180deg,#1b2b45,#16233a);border-color:#2b3a52;color:#e8eefb;box-shadow:0 2px 0 #0a1424}
html[data-theme="dark"] #miniGameStage .arc-btn.alt{background:#16233a;color:#8fc0ff;border-color:#2a7de1;box-shadow:0 3px 0 #0a1424}
html[data-theme="dark"] #miniGameStage .ttt-board{background:linear-gradient(145deg,#1b2b45,#13203a)}
html[data-theme="dark"] #miniGameStage .ttt-cell{background:linear-gradient(180deg,#223555,#1a2a46);border-color:#2b3a52;box-shadow:0 4px 0 #0a1424}
html[data-theme="dark"] #miniGameStage .mine-grid{background:linear-gradient(145deg,#2b3a52,#1f2c42)}
html[data-theme="dark"] #miniGameStage .mine-cell:not(.revealed){background:linear-gradient(180deg,#3a4d6b,#2b3a52);box-shadow:inset 0 -3px 0 #1a2638}
html[data-theme="dark"] #miniGameStage .mine-cell.revealed{background:#16233a}
html[data-theme="dark"] .game-end-card{background:linear-gradient(180deg,#1b2b45,#13203a)!important}
/* Configuración → Efectos especiales apagados */
html[data-fx="off"] .dos-confetti{display:none}
html[data-fx="off"] .ttt-cell.winning-cell,html[data-fx="off"] .connect-slot.winning-disc::after,html[data-fx="off"] .checker-piece.winning-piece,html[data-fx="off"] .falling-disc{animation:none!important}

/* 0.2.56 — Dominó: mesa con jugadores, fichas y botella */
.arc-domino>.arc-bar{display:none}
.dm-table.arc-felt{padding:12px 10px 14px;background:radial-gradient(ellipse at 50% 40%,#2f9d66 0,#16774d 55%,#0b4a2e 100%);border:4px solid #5a3a1d;box-shadow:inset 0 0 40px #000a,0 0 0 2px #8a5a2b,0 12px 24px #3b251040;display:grid;gap:8px;position:relative}
.dm-top{display:grid;justify-items:center;gap:4px}
.dm-top .d-opp{justify-content:center}
.dm-seat{display:flex;align-items:center;justify-content:center;gap:9px;position:relative}
.dm-av{position:relative;width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#dfe9ff);border:3px solid #fff;box-shadow:0 3px 8px #0006;display:grid;place-items:center;font-size:25px}
.dm-seat.turn .dm-av{box-shadow:0 0 0 3px #ffd54a,0 0 16px #ffd54acc,0 3px 8px #0006;animation:dmTurn 1.4s ease-in-out infinite}
.dm-seat.won .dm-av{box-shadow:0 0 0 3px #ffd54a,0 0 22px #ffd54a}
.dm-cnt{position:absolute;right:-6px;bottom:-4px;min-width:20px;height:20px;padding:0 4px;border-radius:99px;background:#10213b;color:#fff;font:900 11px/20px system-ui,sans-serif;text-align:center;font-style:normal;border:2px solid #fff}
.dm-who{display:grid;line-height:1.15}.dm-who b{color:#fff;font-size:14px;text-shadow:0 1px 3px #000a}.dm-who em{font-style:normal;font-size:11px;font-weight:800;color:#ffe9a8}
.dm-seat .crown{font-size:20px}
.dm-oval{position:relative;min-height:150px;padding:10px 46px 10px 10px;border-radius:70px;border:2px solid #ffffff22;background:radial-gradient(ellipse at 50% 45%,#ffffff12,transparent 70%);display:grid;align-content:center;gap:6px}
.dm-oval .d-board{min-height:84px}
.dm-bottle{position:absolute;right:4px;bottom:6px;width:38px;height:92px;padding:0;border:0;background:none;cursor:pointer;transform-origin:50% 100%;filter:drop-shadow(0 4px 4px #0008);touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.dm-bottle svg{width:100%;height:100%;display:block;overflow:visible}
.dm-bottle:hover{filter:drop-shadow(0 4px 4px #0008) brightness(1.1)}
.dm-bottle.empty{opacity:.75}
.dm-bottle .b{position:absolute;left:50%;top:40%;width:5px;height:5px;margin-left:-2px;border-radius:50%;background:#e8fff0;opacity:0}
.dm-bottle.sip .b1{animation:dmBub 1s .15s ease-out}.dm-bottle.sip .b2{animation:dmBub 1s .35s ease-out;margin-left:4px}.dm-bottle.sip .b3{animation:dmBub 1s .55s ease-out;margin-left:-8px}
.dm-bottle.sip{animation:dmSip 1.3s ease-in-out}
.dm-cheer{position:absolute;left:50%;bottom:100%;transform:translateX(-50%);white-space:nowrap;padding:6px 12px;border-radius:14px;background:#fff;color:#10213b;font-size:13px;font-weight:900;box-shadow:0 6px 14px #0006;animation:dmCheer 1.8s ease-out forwards;z-index:3}
.dm-cheer::after{content:"";position:absolute;left:50%;top:100%;margin-left:-6px;border:6px solid transparent;border-top-color:#fff}
@keyframes dmSip{0%{transform:none}22%{transform:translate(-10px,-12px) rotate(-20deg)}50%,78%{transform:translate(-30px,-34px) rotate(-105deg)}100%{transform:none}}
@keyframes dmBub{0%{opacity:.9;transform:translateY(0)}100%{opacity:0;transform:translateY(-34px)}}
@keyframes dmCheer{0%{opacity:0;transform:translate(-50%,8px) scale(.8)}12%{opacity:1;transform:translate(-50%,0) scale(1)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-10px)}}
@keyframes dmTurn{50%{transform:scale(1.07)}}
html[data-fx="off"] .dm-bottle.sip,html[data-fx="off"] .dm-seat.turn .dm-av{animation:none}
@media(max-width:380px){.dm-oval{padding-right:40px}.dm-bottle{width:32px;height:80px}}

/* 0.2.57 — Dominó: mesa cuadrada con la cadena en serpiente y ficha en grande */
.dm-board{position:relative;width:100%;max-width:440px;margin:0 auto;border-radius:16px;background:radial-gradient(ellipse at 50% 45%,#ffffff14,transparent 72%),repeating-linear-gradient(0deg,#0000 0 27px,#ffffff06 27px 28px);border:2px solid #ffffff26;box-shadow:inset 0 0 28px #0007}
.dm-board.empty{display:grid;place-items:center;padding:10px}
.dmt{position:absolute;padding:1px;margin:0;border:0;background:none;cursor:zoom-in;display:block;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.dmt svg{display:block;width:100%;height:100%;filter:drop-shadow(0 1px 1.5px #000a)}
.dmt.pop svg{animation:arcPop .5s ease-out}
.dmt:hover svg{filter:drop-shadow(0 0 4px #ffd54a) drop-shadow(0 1px 1.5px #000a)}
.dm-foot{position:relative;display:flex;justify-content:center;align-items:center;min-height:88px}
.dm-foot .dm-bottle{right:4px;bottom:2px;width:34px;height:84px}
.dm-table .d-ends{max-width:440px;width:100%;margin:0 auto}
.dm-zoom{position:fixed;inset:0;z-index:9650;background:#000b;display:grid;place-items:center;padding:16px;animation:dmFade .18s ease-out}
.dm-zoom-card{width:min(86vw,380px);padding:26px 20px 16px;border-radius:22px;background:linear-gradient(180deg,#fff,#eef4ff);text-align:center;box-shadow:0 20px 50px #000a;animation:arcPop .3s ease-out}
.dm-zoom-card svg{width:100%;height:auto;display:block;filter:drop-shadow(0 6px 10px #0005)}
.dm-zoom-card p{margin:14px 0 2px;font-size:18px;color:#10213b}.dm-zoom-card small{color:#718097;font-size:12px}
@keyframes dmFade{from{opacity:0}to{opacity:1}}
html[data-theme="dark"] .dm-zoom-card{background:linear-gradient(180deg,#1b2b45,#13203a)}html[data-theme="dark"] .dm-zoom-card p{color:#e8eefb}

/* 0.2.58 — Dominó 4 jugadores + sala multijugador */
.dm-opps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;align-items:start}
.dm-opps .dm-seat{flex-direction:column;gap:3px;text-align:center}
.dm-opps .dm-av{width:42px;height:42px;font-size:22px}
.dm-who small{display:block;font-size:10px;font-weight:700;color:#cfeedd;opacity:.9}
.dm-opps .dm-who b{font-size:12px;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dm-seat.top{order:0}
.dm-score{display:flex;justify-content:center;align-items:center;gap:10px;font-size:12px;color:#fff}
.dm-score span{padding:4px 10px;border-radius:99px;background:#00000040;font-weight:800}.dm-score span.mine{background:#ffd54a;color:#10213b}.dm-score b{font-size:14px}.dm-score i{font-style:normal;opacity:.8;font-size:11px}
.dm-foot .dm-seat{flex-direction:row}
.dm-sum{margin:10px 0;padding:12px;border-radius:16px;background:linear-gradient(180deg,#fff,#eef4ff);border:1px solid #c6d6ef;display:grid;gap:6px}
.dm-sum h4{margin:0 0 4px;font-size:15px;color:#10213b}
.dm-sum-row{display:grid;grid-template-columns:84px 1fr 30px;gap:6px;align-items:center;padding:4px 6px;border-radius:10px;background:#f4f7fc;font-size:12px;color:#10213b}
.dm-sum-row.mine{background:#e3f0ff}.dm-sum-row>span{display:flex;flex-wrap:wrap;gap:3px}.dm-sum-row>i{font-style:normal;font-weight:900;text-align:right}.dm-sum-row em{font-style:normal;opacity:.6}
.dp-seats{display:grid;gap:8px;margin:12px 0}
.dp-seat{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:14px;background:#fff;border:1px solid #d3dbe8;color:#14233b}
.dp-seat>span{font-size:26px}.dp-seat b{display:block;font-size:14px}.dp-seat small{color:#5b6b85;font-size:12px}.dp-seat.bot{opacity:.75;background:#f4f7fc}
html[data-theme="dark"] .dp .dp-seat{background:#16233a;border-color:#2b3a52;color:#e8eefb}html[data-theme="dark"] .dp-seat small{color:#b9c8dc}html[data-theme="dark"] .dp-seat.bot{background:#101b2e}
html[data-theme="dark"] .dm-sum{background:linear-gradient(180deg,#1b2b45,#13203a);border-color:#2b3a52}html[data-theme="dark"] .dm-sum h4,html[data-theme="dark"] .dm-sum-row{color:#e8eefb}html[data-theme="dark"] .dm-sum-row{background:#16233a}html[data-theme="dark"] .dm-sum-row.mine{background:#1d3358}

/* 0.2.60 — 4 en línea: caída con gravedad y rebote, ficha fantasma, ganadoras pulsando */
#miniGameStage .connect-slot{position:relative;transition:opacity .35s,filter .35s}
#miniGameStage .connect-slot.falling-disc{animation:none!important;overflow:visible;z-index:3}
#miniGameStage .connect-slot.falling-disc.red-disc,#miniGameStage .connect-slot.falling-disc.yellow-disc{background:radial-gradient(circle at 50% 40%,#0a2f73 0 60%,#0d3a85 100%);box-shadow:inset 0 4px 8px #0006,0 1px 0 #ffffff33}
#miniGameStage .connect-slot.falling-disc{color:transparent}#miniGameStage .connect-slot.falling-disc::before{content:"●";display:grid;place-items:center;color:#fff;font-size:inherit;line-height:1;position:absolute;inset:0;border-radius:50%;animation:c4drop var(--dur,.6s) both;animation-delay:var(--delay,0s)}
#miniGameStage .connect-slot.falling-disc.red-disc::before{background:radial-gradient(circle at 35% 30%,#ff9aa2,#e0323f 45%,#a5121e);box-shadow:inset 0 -4px 6px #0005,inset 0 3px 5px #fff6,0 0 12px #d6293e88}
#miniGameStage .connect-slot.falling-disc.yellow-disc::before{background:radial-gradient(circle at 35% 30%,#fff3a6,#f6c81f 45%,#c58f00);box-shadow:inset 0 -4px 6px #0004,inset 0 3px 5px #fff8,0 0 12px #f3c84488}
@keyframes c4drop{
 0%{transform:translateY(calc(var(--rows,1)*-118%));animation-timing-function:cubic-bezier(.55,0,1,.45)}
 58%{transform:translateY(0) scale(1,1);animation-timing-function:ease-out}
 64%{transform:translateY(0) scale(1.08,.9);animation-timing-function:ease-out}
 74%{transform:translateY(-9%) scale(1,1);animation-timing-function:ease-in}
 85%{transform:translateY(0);animation-timing-function:ease-out}
 92%{transform:translateY(-3%);animation-timing-function:ease-in}
 100%{transform:translateY(0)}
}
#miniGameStage .connect-slot.ghost::after{content:"";position:absolute;inset:7%;border-radius:50%;pointer-events:none;opacity:.5;animation:c4ghost .9s ease-in-out infinite alternate}
#miniGameStage .connect-slot.ghost-R::after{background:radial-gradient(circle at 35% 30%,#ff9aa2,#e0323f 55%,#a5121e)}
#miniGameStage .connect-slot.ghost-Y::after{background:radial-gradient(circle at 35% 30%,#fff3a6,#f6c81f 55%,#c58f00)}
@keyframes c4ghost{from{transform:scale(.86);opacity:.28}to{transform:scale(1);opacity:.6}}
/* victory: the four pulse one after another, everything else dims, the result card waits a moment */
#miniGameStage .connect-board.has-win .connect-slot:not(.winning-disc){opacity:.42;filter:saturate(.6)}
#miniGameStage .connect-slot.winning-disc{animation:c4win .55s ease-in-out infinite alternate;animation-delay:calc(var(--k,0)*.13s);z-index:2;box-shadow:0 0 0 3px #fff,0 0 18px 6px #ffd54acc,inset 0 -4px 6px #0005,inset 0 3px 5px #fff6}
@keyframes c4win{from{transform:scale(1)}to{transform:scale(1.14)}}
.mini-game:has(.connect-slot.winning-disc) .game-end-overlay{animation:c4end .5s 1.6s both}
@keyframes c4end{from{opacity:0}to{opacity:1}}
html[data-fx="off"] .connect-slot.falling-disc::before,html[data-fx="off"] .connect-slot.ghost::after,html[data-fx="off"] .connect-slot.winning-disc{animation:none!important}
@media(prefers-reduced-motion:reduce){#miniGameStage .connect-slot.falling-disc::before,#miniGameStage .connect-slot.ghost::after,#miniGameStage .connect-slot.winning-disc{animation:none}}

/* 0.2.61 — Fichas deslizantes */
#miniGameStage .arc-slide .arc-felt{background:radial-gradient(ellipse at 50% 40%,#7a3560,#4a1a38 60%,#2d0f22);border:3px solid #2a1020;box-shadow:inset 0 0 36px #000a,0 10px 22px #2d0f2240}
.sl-table{display:grid;gap:7px;padding:10px 8px 12px}
.sl-board{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}
.sl-col{display:grid;gap:3px;align-content:start;padding:3px;border-radius:9px;background:#00000030;position:relative}
.sl-col.done{box-shadow:0 0 0 2px #ffd54a,0 0 14px #ffd54acc;background:#ffd54a22}
.slt{display:grid;place-items:center;aspect-ratio:1/1.08;border-radius:7px;font-size:clamp(14px,5.2vw,24px);line-height:1;user-select:none}
.slt.back{background:linear-gradient(160deg,#fbc4d8,#ef8db0 60%,#e0749c);box-shadow:0 2px 0 #b0507a,inset 0 2px 3px #ffffffaa,inset 0 -2px 3px #b0507a55}
.slt.up{background:linear-gradient(180deg,#fffdf6,#f4ecd8);box-shadow:0 2px 0 #b9ae92;border:2px solid #ccc}
.slt.up.s0{border-color:#1fa35b}.slt.up.s1{border-color:#2a7de1}
.slt.wild{background:linear-gradient(160deg,#5aa8ff,#1d62c9);border-color:#ffd54a;color:#ffd54a;box-shadow:0 2px 0 #12408a,0 0 10px #5aa8ff99}.slt.wild b{font-size:1.2em}
.sl-ins{height:24px;border:0;border-radius:8px;background:linear-gradient(180deg,#ffe07a,#f0b000);color:#10213b;font-weight:900;font-size:14px;cursor:pointer;box-shadow:0 2px 0 #a87800;animation:slPulse 1.1s ease-in-out infinite alternate}
.sl-ins:active{transform:translateY(2px);box-shadow:none}.sl-ins.off{display:block;height:24px;animation:none;background:none;box-shadow:none}
.sl-col.hit .slt{animation:slDown .34s ease-out}.sl-col.hit .slt:nth-of-type(1){animation:slIn .38s ease-out}
.sl-hand{display:flex;align-items:center;justify-content:center;gap:10px;min-height:68px;color:#fff;text-align:left}
.sl-hand .slt{width:46px;flex:none}.sl-hand p{margin:0;font-size:12.5px;line-height:1.3;max-width:200px}.sl-hl{font-size:12px;font-weight:800;opacity:.9}
.sl-hand.mine .slt{animation:slBounce .8s ease-in-out infinite alternate;box-shadow:0 0 0 3px #ffd54a,0 4px 10px #0008}
.sl-tag{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 10px;border-radius:12px;background:#00000040;color:#fff;font-size:12px}.sl-tag b{font-size:13px}.sl-tag.turn{background:#ffd54a;color:#10213b}.sl-tag i{font-style:normal;font-weight:800}
.sl-box{padding:16px 12px;text-align:center;color:#fff;display:grid;gap:10px}.sl-box h3{margin:0;font-size:18px}.sl-box p{margin:0;font-size:13px;opacity:.9}
.sl-rps{display:flex;gap:10px;justify-content:center}.sl-rpsb{display:grid;gap:3px;place-items:center;width:84px;padding:10px 6px;border:0;border-radius:16px;background:linear-gradient(180deg,#fff,#eef4ff);color:#10213b;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 4px 0 #b9c8e2}.sl-rpsb span{font-size:34px}.sl-rpsb small{font-size:12px}.sl-rpsb:disabled{opacity:.5}.sl-rpsb:active:not(:disabled){transform:translateY(3px);box-shadow:none}
.sl-sets{display:grid;gap:10px}.sl-set{display:grid;gap:4px;padding:12px;border:0;border-radius:16px;background:linear-gradient(180deg,#fff,#eef4ff);color:#10213b;font:inherit;cursor:pointer;box-shadow:0 4px 0 #b9c8e2}.sl-set b{font-size:16px}.sl-set span{font-size:22px;letter-spacing:2px}.sl-set.s0{border-left:6px solid #1fa35b}.sl-set.s1{border-left:6px solid #2a7de1}.sl-set:disabled{opacity:.6}
.sl-wait,.sl-last{font-size:12px!important;opacity:.85}
@keyframes slDown{from{transform:translateY(-110%)}to{transform:none}}
@keyframes slIn{from{transform:translateY(-220%) scale(1.1);opacity:0}to{transform:none;opacity:1}}
@keyframes slPulse{from{filter:brightness(1)}to{filter:brightness(1.18)}}
@keyframes slBounce{from{transform:translateY(0)}to{transform:translateY(-4px)}}
html[data-fx="off"] .sl-ins,html[data-fx="off"] .sl-hand.mine .slt,html[data-fx="off"] .sl-col.hit .slt{animation:none!important}

/* 0.2.62 — Fichas deslizantes: animación de piedra/papel/tijera, columna obligada, temas de texto */
.slt.up.txt b{font-size:1.25em;font-weight:900;color:#10213b;font-family:"Hiragino Sans","Yu Gothic","Noto Sans JP",system-ui,sans-serif}
.sl-ins:disabled{opacity:.28;animation:none;filter:grayscale(.8);cursor:not-allowed;box-shadow:none}
.sl-col.only{box-shadow:0 0 0 2px #ffd54a,0 0 14px #ffd54acc;background:#ffd54a26}
.sl-arena{min-height:230px;align-content:center}
.sl-hands{display:flex;align-items:center;justify-content:center;gap:14px}
.sl-fist{position:relative;display:grid;place-items:center;width:104px;height:110px}
.sl-fist .f,.sl-fist .r{grid-area:1/1;font-size:64px;line-height:1}
.sl-fist.l .f{animation:slShakeL .5s ease-in-out 3,slHide 0s 1.55s forwards;animation-delay:calc(0s - var(--el)),calc(1.55s - var(--el))}
.sl-fist.r .f{animation:slShakeR .5s ease-in-out 3,slHide 0s 1.55s forwards;animation-delay:calc(0s - var(--el)),calc(1.55s - var(--el))}
.sl-fist .r{opacity:0;transform:scale(.3);animation:slReveal .45s cubic-bezier(.2,1.4,.4,1) forwards;animation-delay:calc(1.55s - var(--el))}
.sl-fist .r.win{filter:drop-shadow(0 0 14px #ffd54a)}
.sl-fist small{position:absolute;bottom:-6px;font-size:12px;font-weight:800;opacity:.9}
.sl-vs{font-style:normal;font-weight:900;font-size:18px;color:#ffd54a;animation:slPulse .5s ease-in-out infinite alternate}
.sl-res{opacity:0;font-size:16px!important;font-weight:900;animation:slFade .4s forwards;animation-delay:calc(1.9s - var(--el))}
@keyframes slShakeL{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-22px) rotate(-14deg)}}
@keyframes slShakeR{0%,100%{transform:translateY(0) rotate(0) scaleX(-1)}50%{transform:translateY(-22px) rotate(14deg) scaleX(-1)}}
@keyframes slHide{to{opacity:0;visibility:hidden}}
@keyframes slReveal{to{opacity:1;transform:scale(1)}}
@keyframes slFade{to{opacity:1}}
html[data-fx="off"] .sl-fist .f{animation:slHide 0s 0s forwards!important}
html[data-fx="off"] .sl-fist .r,html[data-fx="off"] .sl-res{animation:none!important;opacity:1;transform:none}

/* 0.2.64 STOP puntos negativos */
.sp-rank em.neg,.sp-detail b.neg{color:#d62027;font-weight:900}
.stopbtn:disabled{opacity:.45;filter:grayscale(.6);cursor:not-allowed}
#spStopHint{font-size:12px}


/* 0.2.65 — Dominó: cada jugador en su lado con sus fichas delante; mareo tras 10 tragos */
#miniGameStage .mini-game:has(.arc-domino){padding-inline:8px}
.dm-arena{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;grid-template-areas:". top ." "left board right";gap:6px 4px;align-items:center}
.dm-a{min-width:0}
.dm-a.dm-at{grid-area:top;display:grid;justify-items:center;gap:4px}
.dm-a.dm-al{grid-area:left}.dm-a.dm-ar{grid-area:right}.dm-a.dm-ab{grid-area:board}
.dm-a.dm-al,.dm-a.dm-ar{display:grid;justify-items:center;align-content:center;gap:5px}
.dm-a.dm-al .dm-seat,.dm-a.dm-ar .dm-seat{flex-direction:column;gap:2px;text-align:center}
.dm-a.dm-al .dm-av,.dm-a.dm-ar .dm-av{width:36px;height:36px;font-size:19px}
.dm-a.dm-al .dm-who b,.dm-a.dm-ar .dm-who b{font-size:9.5px;max-width:46px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.dm-a.dm-al .dm-who small,.dm-a.dm-ar .dm-who small{display:none}
.dm-a.dm-at .dm-seat{flex-direction:row}
.dm-backs{display:flex;justify-content:center}
.dm-backs.h{gap:2px;flex-wrap:nowrap}.dm-backs.h i{width:15px;height:25px}
.dm-backs.v{flex-direction:column;gap:2px;align-items:center}.dm-backs.v i{width:30px;height:11px}
.dm-backs i{display:block;border-radius:3px;border:1px solid #b9ae92;background:repeating-linear-gradient(45deg,#f4f0e2 0 3px,#e6dfc8 3px 6px);box-shadow:0 1px 2px #0007}
.d-hand.drunk .dbtn{filter:blur(3.5px);animation:dmWobble 1.6s ease-in-out infinite}
.dm-drunk-note{margin:6px 0 0;text-align:center;font-size:12.5px;font-weight:800;color:#8a5a00}
@keyframes dmWobble{0%,100%{transform:translateX(0) rotate(0)}50%{transform:translateX(3px) rotate(1.2deg)}}
html[data-fx="off"] .d-hand.drunk .dbtn{animation:none}
html[data-theme="dark"] .dm-drunk-note{color:#ffd54a}

/* 0.2.66 */
.dm-dir{margin:0;text-align:center;font-size:11px;font-weight:800;color:#d7f3e2;opacity:.9}


/* 0.2.68 — Ajedrez y Damas con mejores gráficos: marco de madera, casillas con veta, piezas en SVG, última jugada, coordenadas */
#miniGameStage .chess-board,#miniGameStage .checkers-board{border:10px solid;border-color:#8a5a2c #5f3a1b #4a2c14 #6f451f;border-radius:14px;box-shadow:0 16px 30px #3b251058,inset 0 0 0 2px #00000066,inset 0 3px 10px #0007}
#miniGameStage .chess-cell.light-square,#miniGameStage .checker-cell.light-square{background:repeating-linear-gradient(100deg,#0000 0 7px,#ffffff14 7px 8px),linear-gradient(135deg,#f7e6c6,#e9cfa0)}
#miniGameStage .chess-cell.dark-square,#miniGameStage .checker-cell.dark-square{background:repeating-linear-gradient(80deg,#0000 0 6px,#00000012 6px 7px),linear-gradient(135deg,#b27c4e,#8b5733)}
#miniGameStage .chess-cell .cp{width:90%;height:90%;display:block;filter:drop-shadow(0 2.5px 1.5px #0008);transition:transform .15s}
#miniGameStage .chess-cell.chosen .cp{transform:translateY(-6%) scale(1.07)}
#miniGameStage .chess-cell:not(:disabled):hover .cp{transform:translateY(-3%)}
#miniGameStage .chess-cell.chosen,#miniGameStage .checker-cell.chosen{box-shadow:inset 0 0 0 3px #ffd54a,inset 0 0 18px #ffd54acc}
#miniGameStage .chess-cell.last-move,#miniGameStage .checker-cell.last-move{box-shadow:inset 0 0 0 100px #f6dc4e66}
#miniGameStage .chess-cell.possible:after{width:26%;height:26%;background:#1b7f4ccc;box-shadow:0 0 0 3px #ffffff88}
#miniGameStage .chess-cell.capture-target:after{width:86%;height:86%;background:none;border:3.5px solid #d62027d0;box-shadow:inset 0 0 10px #d6202788}
#miniGameStage .co{position:absolute;font:800 clamp(7px,2vw,10px)/1 system-ui,sans-serif;font-style:normal;pointer-events:none;z-index:2;opacity:.8}
#miniGameStage .co.rk{left:3px;top:2px}#miniGameStage .co.fl{right:3px;bottom:2px}
#miniGameStage .light-square .co{color:#8b5733}#miniGameStage .dark-square .co{color:#f3dfbd}
/* damas */
#miniGameStage .checker-piece{border:0;position:relative;box-shadow:0 4px 0 #0007,0 8px 10px #0005}
#miniGameStage .checker-piece::before{content:"";position:absolute;inset:11%;border-radius:50%;box-shadow:inset 0 0 0 2px #ffffff55,inset 0 2px 5px #00000044}
#miniGameStage .checker-piece::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 32% 26%,#ffffff88,#ffffff00 55%);pointer-events:none}
#miniGameStage .checker-piece.red-piece{background:radial-gradient(circle at 50% 50%,#e8434f 0 55%,#c0222e 56% 80%,#8f1420 81%)}
#miniGameStage .checker-piece.black-piece{background:radial-gradient(circle at 50% 50%,#444b5c 0 55%,#262c3a 56% 80%,#0f131b 81%)}
#miniGameStage .checker-piece b{position:relative;z-index:2;display:grid;place-items:center;width:76%;height:76%}
#miniGameStage .checker-piece .crown{width:100%;height:100%;filter:drop-shadow(0 1px 1px #0008)}
#miniGameStage .checker-cell.possible:after{background:#1b7f4ccc;border-color:#ffffffcc}
#miniGameStage .checker-cell.capture-target:after{background:#d62027aa;border-color:#ffcc44}
html[data-fx="off"] #miniGameStage .chess-cell .cp{transition:none}

/* 0.2.69 - selector de idioma */
.lang-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.lang-seg button{white-space:nowrap}


/* 0.2.70 — Dominópolis: tablero pseudo-3D (CSS 3D), fichas, dados, panel. Todo bajo .dp para no tocar otros juegos. */
.dp{display:grid;gap:10px;--cell:30px;padding-bottom:18px;position:relative}
.dp .dos-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.dp .dos-head p{margin:0;font-size:.62rem;letter-spacing:.12em;opacity:.7;font-weight:800}
.dp .dos-head h2{margin:2px 0 0;font-size:1.35rem}
.dp .dos-actions{display:flex;gap:6px}
.dp-hud{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:6px}
.dp-pl{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:6px;padding:6px 8px;border-radius:12px;background:rgba(255,255,255,.75);border:2px solid transparent;border-left:5px solid var(--pc);font-size:.78rem;line-height:1.15;transition:.2s}
.dp-pl b{font-size:1.25rem;grid-row:1/3}
.dp-pl span{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dp-pl em{font-style:normal;font-weight:800;color:#0b5d2a}
.dp-pl.on{border-color:var(--pc);box-shadow:0 0 0 3px color-mix(in srgb,var(--pc) 25%,transparent);transform:translateY(-1px)}
.dp-pl.out{opacity:.4;filter:grayscale(1)}
.dp-float{position:absolute;right:6px;top:-6px;font-weight:900;font-size:.9rem;animation:dpUp 1.3s forwards;pointer-events:none;z-index:5}
.dp-float.up{color:#0b8a3a}.dp-float.down{color:#d62027}
@keyframes dpUp{from{opacity:1;transform:translateY(6px)}to{opacity:0;transform:translateY(-22px)}}
.dp-stage{--rz:0deg;--tilt:48deg;position:relative;width:100%;max-width:460px;margin:0 auto;aspect-ratio:1/.8;margin-bottom:6px;perspective:1800px;perspective-origin:50% 45%}
.dp-rot{position:absolute;left:3%;right:3%;top:-8%;aspect-ratio:1;transform-style:preserve-3d;transform:rotateX(var(--tilt)) rotateZ(var(--rz));transition:transform .7s cubic-bezier(.3,.7,.2,1)}
.dp-board{position:absolute;inset:0;display:grid;grid-template-columns:repeat(11,1fr);grid-template-rows:repeat(11,1fr);gap:0;transform-style:preserve-3d;background:#1d6b3a;border:calc(var(--cell)*.18) solid #6b4423;box-sizing:border-box;border-radius:6px;box-shadow:0 18px 30px rgba(0,0,0,.35)}
.dp-center{grid-column:2/11;grid-row:2/11;background:
 linear-gradient(90deg,transparent 47%,#4a4f57 47%,#4a4f57 53%,transparent 53%) 0 0/33.3% 100%,
 linear-gradient(0deg,transparent 47%,#4a4f57 47%,#4a4f57 53%,transparent 53%) 0 0/100% 33.3%,
 radial-gradient(circle at 30% 30%,#52b36c,#2f8a4c);border-radius:4px}
.dp-t{position:relative;background:#f5f1e3;border:1px solid rgba(60,45,20,.45);box-sizing:border-box;display:flex;align-items:center;justify-content:center;overflow:visible;cursor:pointer;min-width:0;min-height:0}
.dp-t .in{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;transform:rotateZ(calc(var(--rz)*-1));pointer-events:none}
.dp-t .in b{font-size:calc(var(--cell)*.5);font-weight:400}
.dp-t .in small{font-size:calc(var(--cell)*.27);font-weight:800;color:#3a3226;margin-top:1px}
.dp-t .band{position:absolute;pointer-events:none}
.dp-t.s-b .band{left:0;right:0;top:0;height:26%}.dp-t.s-t .band{left:0;right:0;bottom:0;height:26%}
.dp-t.s-l .band{top:0;bottom:0;right:0;width:26%}.dp-t.s-r .band{top:0;bottom:0;left:0;width:26%}
.dp-t.s-b .in{padding-top:18%}.dp-t.s-t .in{padding-bottom:18%}.dp-t.s-l .in{padding-right:18%}.dp-t.s-r .in{padding-left:18%}
.dp-t .own{position:absolute;left:12%;right:12%;bottom:4%;height:12%;border-radius:3px;display:none;pointer-events:none}
.dp-t.s-b .own{top:4%;bottom:auto}
.dp-t.mort{filter:grayscale(1) brightness(.85)}
.dp-t.t-go,.dp-t.t-jail,.dp-t.t-free,.dp-t.t-gojail{background:#ffe9a8}.dp-t.t-go .in b,.dp-t.t-jail .in b,.dp-t.t-free .in b,.dp-t.t-gojail .in b{font-size:calc(var(--cell)*.75)}
.dp-t.t-card{background:#e7e0ff}.dp-t.t-tax{background:#ffe0e0}.dp-t.t-rail{background:#e4edf5}.dp-t.t-util{background:#e8f5e4}
.dp-layer{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}
.bx{position:absolute;width:var(--w);height:var(--d);transform-style:preserve-3d;transition:--h .4s}
.bx i{position:absolute;display:block;background:var(--c)}
.bx .tp{left:0;top:0;width:var(--w);height:var(--d);transform:translateZ(var(--h));filter:brightness(1.12)}
.bx .sw{left:0;top:var(--d);width:var(--w);height:var(--h);transform-origin:0 0;transform:rotateX(90deg);filter:brightness(.92);background-image:repeating-linear-gradient(0deg,transparent 0 6px,rgba(0,0,0,.12) 6px 8px)}
.bx .nw{left:0;top:0;width:var(--w);height:var(--h);transform-origin:0 0;transform:rotateX(90deg);filter:brightness(.72)}
.bx .ww{left:0;top:0;width:var(--h);height:var(--d);transform-origin:0 0;transform:rotateY(-90deg);filter:brightness(.82)}
.bx .ew{left:var(--w);top:0;width:var(--h);height:var(--d);transform-origin:0 0;transform:rotateY(-90deg);filter:brightness(.62)}
.bx.house .tp{background:#c0392b}.bx.house i{outline:1px solid rgba(0,0,0,.25)}

.tk{position:absolute;width:var(--cell);height:var(--cell);transform-style:preserve-3d;transition:left .2s linear,top .2s linear}
.tk:before{content:"";position:absolute;left:18%;top:18%;width:64%;height:64%;border-radius:50%;background:var(--pc);box-shadow:0 0 0 2px #fff,0 3px 6px rgba(0,0,0,.4);opacity:.9}
.tk span{position:absolute;left:50%;top:50%;font-size:calc(var(--cell)*.95);line-height:1;transform-origin:50% 90%;transform:translate(-50%,-90%) rotateZ(calc(var(--rz)*-1)) rotateX(calc(var(--tilt)*-1));filter:drop-shadow(0 2px 1px rgba(0,0,0,.45))}
.tk.act span{animation:dpHop .7s ease-in-out infinite}
@keyframes dpHop{50%{margin-top:calc(var(--cell)*-.25)}}
.dp-tools{display:flex;align-items:center;justify-content:center;gap:10px}
.dp-dice{display:flex;gap:8px}
.dp-die{width:40px;height:40px;border-radius:9px;background:#fff;box-shadow:0 2px 0 #b9b2a0,0 4px 8px rgba(0,0,0,.25);display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:5px;box-sizing:border-box}
.dp-die i{display:block;border-radius:50%;margin:1px}.dp-die i.p{background:#222}
.dp-panel{display:grid;gap:8px;min-height:92px}
.dp-btns{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.dp-btns .arc-btn{flex:1 1 130px}
.dp-big{font-size:1.1rem;padding:14px 18px}
.dp-note{margin:0;text-align:center;font-weight:700;font-size:.88rem}.dp-note.bad{color:#b3141b}.dp-note.small{font-weight:500;font-size:.75rem;opacity:.75}
.dp-wait{text-align:center;font-weight:700;padding:8px}
.dp-log{font-size:.74rem;line-height:1.3;opacity:.85;text-align:center;min-height:2.6em}.dp-log p{margin:0}
.dp-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.18);max-width:300px;margin:0 auto;width:100%;color:#222}
.dp-card-h{padding:8px 10px;color:#fff;text-align:center;font-size:1rem;text-shadow:0 1px 2px rgba(0,0,0,.45)}
.dp-card table{width:100%;font-size:.8rem;border-collapse:collapse}.dp-card td{padding:2px 12px}.dp-card td:last-child{text-align:right;font-weight:800}
.dp-price{margin:6px 0 2px;text-align:center;font-weight:800;font-size:.85rem}.dp-owner{margin:4px 0 8px;text-align:center;font-size:.8rem}
.dp-sheet{position:fixed;inset:0;z-index:60;background:rgba(10,15,30,.55);display:flex;align-items:flex-end;justify-content:center}
.dp-sheet-in{width:100%;max-width:520px;max-height:82vh;overflow:auto;background:var(--card,#fff);color:inherit;border-radius:18px 18px 0 0;padding:16px 14px 20px;display:grid;gap:10px;animation:dpSlide .22s}
@keyframes dpSlide{from{transform:translateY(40px);opacity:0}}
.dp-sheet h3{margin:0;text-align:center}
.dp-plist{display:grid;gap:6px}
.dp-prow{display:grid;grid-template-columns:8px 1fr auto;gap:8px;align-items:center;padding:6px 8px;border-radius:10px;background:rgba(0,0,0,.05)}
.dp-prow>i{align-self:stretch;border-radius:4px}.dp-prow small{display:block;opacity:.7}
.dp-prow .dp-hs{display:block;font-size:.75rem}
.dp-pb{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.dp-pb .arc-btn{padding:6px 8px;font-size:.72rem}
.dp-prow.mort{opacity:.65}
.dp-cardpop{text-align:center;padding:12px;border-radius:14px;display:grid;gap:10px;background:#fff;color:#222}
.dp-cardpop.sor{background:linear-gradient(#efe7ff,#fff)}.dp-cardpop.col{background:linear-gradient(#ffe9d2,#fff)}
.dp-cardpop small{font-weight:900;letter-spacing:.1em}.dp-cardpop p{margin:0;font-size:1.05rem;font-weight:700}
.dp-toast{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);background:#222;color:#fff;padding:8px 14px;border-radius:999px;font-size:.8rem;z-index:70}
.dp-end ol{list-style:none;padding:0;margin:0;display:grid;gap:6px}.dp-end li{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:10px;background:rgba(0,0,0,.06)}.dp-end li.me{outline:2px solid #1d9b54}.dp-end li span{flex:1;font-weight:800}.dp-end h3,.dp-end p{text-align:center;margin:0}
.dp-menu{display:grid;gap:12px}
.dp-hero{display:grid;gap:4px;text-align:center;padding:16px;border-radius:16px;background:linear-gradient(135deg,#0b3d91,#d62027);color:#fff;font-size:2.4rem}
.dp-hero b{font-size:1.2rem}.dp-hero span{font-size:.8rem;opacity:.9}
.dp-opt{display:grid;gap:6px}.dp-opt>b{font-size:.85rem}
.dp-seg{display:flex;gap:6px;flex-wrap:wrap}.dp-seg button{flex:1 1 90px;padding:10px 8px;border-radius:12px;border:2px solid rgba(0,0,0,.12);background:rgba(255,255,255,.8);font-weight:800;cursor:pointer;color:inherit}
.dp-seg button.on{border-color:#0b3d91;background:#e6eeff}
.dp-seg.tok button{font-size:1.5rem;flex:1 1 44px;padding:6px}
.dp-rules dt{font-weight:900;margin-top:8px}.dp-rules dd{margin:2px 0 0;font-size:.88rem}
html[data-theme="dark"] .dp-pl{background:rgba(255,255,255,.08)}html[data-theme="dark"] .dp-pl em{color:#6fe39a}
html[data-theme="dark"] .dp-seg button{background:rgba(255,255,255,.08)}html[data-theme="dark"] .dp-seg button.on{background:#12306b}
html[data-theme="dark"] .dp-sheet-in{background:#161c2b}
html[data-theme="dark"] .dp-prow{background:rgba(255,255,255,.07)}
html[data-theme="dark"] .dp-cardpop,html[data-theme="dark"] .dp-card{color:#222}

.dp-card table{display:block}.dp-card tbody{display:grid;grid-template-columns:1fr 1fr;column-gap:6px}.dp-card tr{display:flex;justify-content:space-between;padding:1px 8px}.dp-card td{padding:0!important;font-size:.72rem}.dp-card-h{padding:5px 8px;font-size:.9rem}.dp-price{margin:3px 0 1px;font-size:.78rem}.dp-owner{margin:2px 0 6px;font-size:.74rem}

/* edificios con ventanas */
.bx.city .sw,.bx.city .nw,.bx.city .ww,.bx.city .ew{background-image:repeating-linear-gradient(0deg,transparent 0 calc(var(--cell)*.1),rgba(20,35,70,.62) calc(var(--cell)*.1) calc(var(--cell)*.19)),repeating-linear-gradient(90deg,transparent 0 calc(var(--cell)*.2),rgba(255,236,150,.55) calc(var(--cell)*.2) calc(var(--cell)*.24))}

/* 0.2.70b — Dominópolis: tablero más grande, centro con dados y tarjetas, solares con calle y edificio */
@property --h{syntax:'<length>';inherits:true;initial-value:0px}
.bx{transition:--h .6s ease-out}
.bx .tp{background:var(--top,var(--c))}
.bx.bld .sw,.bx.bld .nw,.bx.bld .ww,.bx.bld .ew{background-image:repeating-linear-gradient(0deg,transparent 0 calc(var(--cell)*.08),rgba(20,35,70,.55) calc(var(--cell)*.08) calc(var(--cell)*.15)),repeating-linear-gradient(90deg,transparent 0 calc(var(--cell)*.14),rgba(255,236,150,.5) calc(var(--cell)*.14) calc(var(--cell)*.18))}
.bx.tower .tp{background:#ffd54a}
.dp-stage{--rz:0deg;--tilt:40deg;width:calc(100% + 20px);margin-left:-10px;max-width:none;aspect-ratio:1/.9}
@media(min-width:560px){.dp-stage{width:100%;max-width:620px;margin-left:auto}}
.dp-rot{left:1%;right:1%;top:-3%}
.dp-center{grid-column:2/11;grid-row:2/11;position:relative;background:radial-gradient(circle at 30% 25%,#63c17e,#2f8a4c 70%);border-radius:4px}
.dp-lot{position:relative;margin:7%;border:1.5px dashed rgba(255,255,255,.6);border-radius:4px;background:rgba(255,255,255,.14);pointer-events:none;transition:background .4s,border-color .4s}
.dp-lot.own{background:#a9aeb6;border:2px solid var(--oc);animation:dpStreet .5s}
.dp-lot.own:after{content:"";position:absolute;background-color:#3b3f46}
.dp-lot.s-b.own:after{left:0;right:0;bottom:0;height:24%;background-image:linear-gradient(90deg,#e8e8e8 50%,transparent 50%);background-size:10px 2px;background-repeat:repeat-x;background-position:center}
.dp-lot.s-t.own:after{left:0;right:0;top:0;height:24%;background-image:linear-gradient(90deg,#e8e8e8 50%,transparent 50%);background-size:10px 2px;background-repeat:repeat-x;background-position:center}
.dp-lot.s-l.own:after{top:0;bottom:0;left:0;width:24%;background-image:linear-gradient(0deg,#e8e8e8 50%,transparent 50%);background-size:2px 10px;background-repeat:repeat-y;background-position:center}
.dp-lot.s-r.own:after{top:0;bottom:0;right:0;width:24%;background-image:linear-gradient(0deg,#e8e8e8 50%,transparent 50%);background-size:2px 10px;background-repeat:repeat-y;background-position:center}
.dp-lot.mort{filter:grayscale(1)}
@keyframes dpStreet{from{opacity:0;transform:scale(.6)}}
.dp-palm{font-style:normal;font-size:calc(var(--cell)*.9);display:grid;place-items:center;pointer-events:none;transform:rotateZ(calc(var(--rz)*-1))}
.dp-hub{grid-column:3/10;grid-row:3/10;position:relative;display:flex;flex-direction:column;gap:calc(var(--cell)*.15);padding:calc(var(--cell)*.18);box-sizing:border-box;min-width:0;min-height:0;transform:rotateZ(calc(var(--rz)*-1));background:rgba(255,252,240,.95);border-radius:calc(var(--cell)*.3);border:calc(var(--cell)*.1) solid #4a4f57;color:#222;z-index:1}
.dp-decks{display:flex;gap:calc(var(--cell)*.3);justify-content:center}
.dp-decks .dk{width:calc(var(--cell)*2.2);height:calc(var(--cell)*.95);border-radius:calc(var(--cell)*.18);color:#fff;font-size:calc(var(--cell)*.42);display:grid;place-items:center;line-height:1;box-shadow:0 2px 0 rgba(0,0,0,.25);gap:0}
.dp-decks .dk small{font-size:calc(var(--cell)*.24);font-weight:800;display:block}
.dp-decks .dk.s{background:linear-gradient(#7a55d9,#4b2fa8)}.dp-decks .dk.c{background:linear-gradient(#f2994a,#d2691e)}
.dp-hubmain{flex:1;display:grid;grid-template-columns:calc(var(--cell)*1.45) 1fr;gap:calc(var(--cell)*.18);min-height:0}
.dp-dicecol{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--cell)*.1);cursor:pointer}
.dp-dicecol small{font-size:calc(var(--cell)*.2);text-align:center;opacity:.7;line-height:1.1}
.dp-hub .dp-dice{flex-direction:column;gap:calc(var(--cell)*.12)}
.dp-hub .dp-die{width:calc(var(--cell)*1.05);height:calc(var(--cell)*1.05);padding:calc(var(--cell)*.1);border-radius:calc(var(--cell)*.2)}
.dp-hubcard{min-width:0;min-height:0;overflow:hidden;cursor:pointer}
.dp-card.mini{max-width:none;height:100%;box-shadow:none;border:1px solid #ccc;display:flex;flex-direction:column;border-radius:calc(var(--cell)*.15)}
.dp-card.mini .dp-card-h{padding:calc(var(--cell)*.1) calc(var(--cell)*.05);font-size:calc(var(--cell)*.3);line-height:1.1}
.dp-card.mini .dp-price{font-size:calc(var(--cell)*.25);margin:calc(var(--cell)*.04) 0}
.dp-card.mini td{font-size:calc(var(--cell)*.21)!important}.dp-card.mini tr{padding:0 calc(var(--cell)*.08)}
.dp-card.mini .dp-owner{font-size:calc(var(--cell)*.23);margin:calc(var(--cell)*.04) 0}
.dp-owner.big{font-size:calc(var(--cell)*1.3)!important;text-align:center}
.dp-hubcard .dp-cardpop{height:100%;padding:calc(var(--cell)*.15);gap:calc(var(--cell)*.1);align-content:center;box-sizing:border-box;border-radius:calc(var(--cell)*.15)}
.dp-hubcard .dp-cardpop small{font-size:calc(var(--cell)*.24)}.dp-hubcard .dp-cardpop p{font-size:calc(var(--cell)*.3);line-height:1.15}.dp-hubcard .dp-cardpop em{font-size:calc(var(--cell)*.2);opacity:.7}
/* 0.2.70c — casillas con ilustración/foto, cámara con zoom */
.dp-stage{overflow:hidden}
.dp-rot{transform:translate(var(--tx,0px),var(--ty,0px)) scale(var(--zm,1)) rotateX(var(--tilt)) rotateZ(var(--rz));transition:transform .5s cubic-bezier(.3,.7,.2,1)}
.dp-t{overflow:hidden}
.dp-t .pic{position:absolute;inset:0;background:linear-gradient(160deg,color-mix(in srgb,var(--c1) 55%,#fff),var(--c1));display:grid;place-items:center;pointer-events:none}
.dp-t .pic .em{font-size:calc(var(--cell)*.62);font-weight:400;line-height:1;transform:rotateZ(calc(var(--rz)*-1));filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}
.dp-t .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dp-t.t-go .pic .em,.dp-t.t-jail .pic .em,.dp-t.t-free .pic .em,.dp-t.t-gojail .pic .em{font-size:calc(var(--cell)*.8)}
.dp-t .pr{position:absolute;z-index:2;left:50%;bottom:calc(var(--cell)*.03);transform:translateX(-50%) rotateZ(calc(var(--rz)*-1));background:rgba(15,20,35,.78);color:#fff;font-size:calc(var(--cell)*.24);font-weight:800;line-height:1;padding:calc(var(--cell)*.03) calc(var(--cell)*.07);border-radius:calc(var(--cell)*.1);pointer-events:none}
.dp-t .band{z-index:2}
.dp-t .own{z-index:2}
.dp-stage{aspect-ratio:1/1.02}

.dp-stage{aspect-ratio:1/.9}

/* 0.2.70d - esquinas con dos solares, mazos que brillan */
.dp-lot.half-l{margin:7% 50% 7% 7%}.dp-lot.half-r{margin:7% 7% 7% 50%}
.dp-decks .dk{cursor:pointer;transition:transform .2s}
.dp-decks .dk.pulse{animation:dpPulse .8s ease-in-out infinite;box-shadow:0 0 0 3px #ffd54a,0 0 14px 4px rgba(255,213,74,.9)}
@keyframes dpPulse{50%{transform:translateY(-4px) scale(1.07)}}

/* 0.2.70e — online: salas, colores, inicial en los edificios */
.bx .tp{display:grid;place-items:center}
.bx .tp b{font-size:calc(var(--cell)*.46);font-weight:900;color:#fff;line-height:1;transform:rotateZ(calc(var(--rz)*-1));text-shadow:0 1px 2px rgba(0,0,0,.65);font-style:normal}
.bx.small .tp b{font-size:calc(var(--cell)*.3)}
.bx.tower .tp b{font-size:calc(var(--cell)*.5);color:#fff}
.dp-colors{display:flex;flex-wrap:wrap;gap:8px}
.dp-sw{width:34px;height:34px;border-radius:50%;border:3px solid #fff;background:var(--sw);box-shadow:0 0 0 2px rgba(0,0,0,.2);cursor:pointer;padding:0;display:inline-block}
.dp-sw.on{box-shadow:0 0 0 3px #1b2233}
.dp-sw:disabled{opacity:.25;cursor:not-allowed;position:relative}
.dp-sw:disabled:after{content:"✕";position:absolute;inset:0;display:grid;place-items:center;color:#222;font-size:.8rem}
.dp-seg.tok button:disabled{opacity:.25;cursor:not-allowed}
.dp-box{padding:12px;border-radius:14px;background:rgba(0,0,0,.04);border:1px solid rgba(0,0,0,.08)}
.dp-box small{opacity:.75;font-size:.78rem}
.dp-join{display:flex;gap:8px;margin-top:6px}.dp-join input{flex:1;padding:10px;border-radius:10px;border:2px solid rgba(0,0,0,.15);font:inherit;text-transform:uppercase;min-width:0}
.dp-roomcode{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;padding:12px;border-radius:14px;background:#e6eeff;color:#0b2a63}
.dp-roomcode small{grid-column:1/2}.dp-roomcode b{font-size:1.5rem;letter-spacing:.08em;grid-column:1/2}.dp-roomcode .arc-btn{grid-column:2;grid-row:1/3}
.dp .dp-seats{display:grid;gap:6px}
.dp .dp-seat{display:grid;grid-template-columns:34px 1fr auto auto;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.8);border-left:6px solid var(--pc,#bbb)}
.dp .dp-seat.open{opacity:.6;border-left-color:#bbb;grid-template-columns:34px 1fr}.dp-seat.open small{grid-column:2}
.dp .dp-seat span{font-size:1.4rem;text-align:center}.dp-seat small{opacity:.7}.dp-seat.me{outline:2px solid #1d9b54}.dp-seat.away{opacity:.55}
.dp .dp-seat .dp-sw{width:18px;height:18px;border-width:2px;cursor:default}
.dp-off{background:#b3141b;color:#fff;text-align:center;font-weight:800;border-radius:10px;padding:6px;font-size:.8rem}
html[data-theme="dark"] .dp-box{background:rgba(255,255,255,.06)}html[data-theme="dark"] .dp .dp-seat{background:rgba(255,255,255,.08)}
html[data-theme="dark"] .dp-roomcode{background:#14306b;color:#dbe7ff}
/* 0.2.71 — Amigos e invitaciones */
.fr-card{padding:12px;border-radius:14px;background:rgba(0,0,0,.05);margin-bottom:10px;display:grid;gap:8px}
.fr-card small{letter-spacing:.1em;font-weight:800;opacity:.7;font-size:.68rem}
.fr-code{font-size:1.7rem;letter-spacing:.1em}
.fr-row{display:flex;gap:8px;flex-wrap:wrap}.fr-row input{flex:1;min-width:0;padding:10px;border-radius:10px;border:2px solid rgba(0,0,0,.15);font:inherit;text-transform:uppercase;background:var(--card,#fff);color:inherit}
.fr-btn{flex:1 1 auto;padding:10px 12px;border:0;border-radius:10px;background:#0b3d91;color:#fff;cursor:pointer;font:inherit;font-weight:800}
.fr-btn.alt{background:transparent;color:inherit;border:2px solid rgba(0,0,0,.18)}.fr-btn:disabled{opacity:.6}
.fr-note{margin:0;font-size:.8rem;opacity:.85}.fr-note.bad{color:#b3141b;opacity:1}
.fr-switch{display:flex;gap:10px;align-items:center;font-weight:800}.fr-switch input{width:20px;height:20px}
.fr-head{display:flex;justify-content:space-between;align-items:center;margin:6px 0}
.fr-mini{border:0;border-radius:8px;background:rgba(0,0,0,.08);padding:6px 10px;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer;color:inherit}
.fr-list{display:grid;gap:6px}
.fr-friend{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:rgba(0,0,0,.05)}
.fr-av{font-size:1.6rem;text-align:center}.fr-friend small{display:block;opacity:.8;font-size:.76rem}
.fr-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#9aa3b5;margin-right:5px}.fr-dot.on{background:#1fb35a;box-shadow:0 0 0 3px rgba(31,179,90,.25)}.fr-dot.wait{background:#e0a800}
.fr-x{border:0;background:transparent;font-size:1.1rem;cursor:pointer}
.fr-banner{position:fixed;left:50%;top:max(10px,var(--sat));transform:translateX(-50%);z-index:10060;width:min(94vw,420px);padding:12px;border-radius:16px;background:#12306b;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.45);display:grid;gap:10px;animation:frIn .3s;box-sizing:border-box}
.fr-banner.out{opacity:0;transform:translate(-50%,-20px);transition:.3s}
@keyframes frIn{from{opacity:0;transform:translate(-50%,-30px)}}
.fr-b-who{display:flex;gap:10px;align-items:center}.fr-b-who>span{font-size:1.8rem}
.fr-b-btns{display:flex;gap:6px;flex-wrap:wrap}.fr-b-btns button{flex:1 1 auto;padding:9px 10px;border:0;border-radius:10px;background:rgba(255,255,255,.18);color:#fff;font:inherit;font-weight:800;cursor:pointer}
.fr-b-btns .fr-go{background:#1fb35a}
.dp-rcb{display:flex;gap:8px;grid-column:2;grid-row:1/3}
.dos-room{flex-wrap:wrap;gap:8px}

/* 0.2.71b — panel de amigos en las salas, aviso de ausentes, avisos pequeños */
.fr-pbox{padding:10px;border-radius:14px;background:rgba(0,0,0,.05);display:grid;gap:8px;margin:8px 0}
.fr-pbox .fr-head{margin:0}.fr-pbox .fr-list{max-height:210px;overflow:auto}
.fr-pbox .fr-friend{grid-template-columns:36px 1fr auto;padding:6px 8px}
.fr-pbox .fr-btn{flex:0 0 auto;padding:7px 12px;font-size:.82rem}
.fr-note.small{font-size:.72rem;opacity:.7}
.fr-banner.fr-small{padding:10px 14px;font-weight:800;text-align:center;font-size:.9rem}
.dp-awaybar{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:12px;background:#fff3cd;color:#5c4400;font-size:.8rem;font-weight:700}
.dp-awaybar .arc-btn{flex:0 0 auto;padding:6px 10px;font-size:.75rem}

/* 0.2.71c — menú único de los minijuegos */
.mc-size{display:grid;gap:6px;padding:8px 12px;border-radius:14px;background:rgba(255,255,255,.12);margin-top:2px}
.mc-size>span{font-size:.78rem;font-weight:800;opacity:.85}
.mc-size>div{display:flex;gap:6px;flex-wrap:wrap}
.mc-size button{flex:1 1 34px;padding:8px 0;border-radius:10px;border:2px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:inherit;font:inherit;font-weight:800;cursor:pointer}
.mc-size button.on{background:#fff;color:#0b2a63;border-color:#fff}
.mc-join{display:grid;gap:6px;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.12)}
.mc-join label{font-size:.78rem;font-weight:800;opacity:.9}
.mc-join>div{display:flex;gap:8px}
.mc-join input{flex:1;min-width:0;padding:10px;border-radius:10px;border:2px solid rgba(255,255,255,.3);background:rgba(255,255,255,.92);color:#16213a;font:inherit;text-transform:uppercase}
.mc-join button{padding:10px 14px;border:0;border-radius:10px;background:#1fb35a;color:#fff;font:inherit;font-weight:800;cursor:pointer}
.mc-join p{margin:0;min-height:1em;font-size:.75rem;color:#ffd0d0}

/* 0.2.71c: ajuste de colores (el selector va sobre fondo claro) */
.mc-size{background:rgba(0,0,0,.04);border:1px solid rgba(0,0,0,.08);text-align:left}
.mc-size button{border:2px solid rgba(0,0,0,.15);background:#fff;color:#16213a}
.mc-size button.on{background:#0b3d91;color:#fff;border-color:#0b3d91}
.mc-join{background:rgba(0,0,0,.04);border:1px solid rgba(0,0,0,.08);text-align:left}
.mc-join input{border:2px solid rgba(0,0,0,.18);background:#fff;color:#16213a}
.mc-join p{color:#b3141b}
html[data-theme="dark"] .mc-size,html[data-theme="dark"] .mc-join{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
html[data-theme="dark"] .mc-size button{background:rgba(255,255,255,.08);color:#e8ecf6;border-color:rgba(255,255,255,.2)}
html[data-theme="dark"] .mc-size button.on{background:#7fb0ff;color:#0b2a63;border-color:#7fb0ff}
html[data-theme="dark"] .mc-join input{background:#10141f;color:#e8ecf6;border-color:rgba(255,255,255,.25)}

/* 0.2.72 — saludo siempre legible + avatar especial dragón con corona */
.prof-hello{display:inline-block;padding:5px 14px;border-radius:999px;background:rgba(255,255,255,.96);color:#16213a;font-weight:800;box-shadow:0 2px 8px rgba(0,0,0,.28);text-shadow:none}
.prof-hello b{color:#0b3d91;font-weight:900}
.av-dragon{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.2em;line-height:1}
.av-dragon svg{width:100%;height:100%;display:block}
.prof-avatars .prof-special{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#fff3c4,#c9f5d6);border:2px solid #e0a800;font-size:1.9rem}
.prof-avatars .prof-special.on{box-shadow:0 0 0 3px #1f9d55}
.prof-avatars .prof-special:after{content:"Solo para ti";font-size:.7rem;font-weight:800;color:#6a4a00}

/* 0.2.72 — sala de espera única (js/lobby.js) y hoja de invitar a varios amigos */
.lb{display:grid;gap:12px;text-align:left;color:inherit}
.lb-switches{display:flex;gap:8px;flex-wrap:wrap}
.lb-sw{flex:1 1 140px;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:12px;background:rgba(0,0,0,.05);border:2px solid transparent;font-weight:800;font-size:.84rem;cursor:pointer}
.lb-sw input{position:absolute;opacity:0;pointer-events:none}
.lb-sw i{flex:0 0 38px;height:22px;border-radius:999px;background:#b8c0d0;position:relative;transition:.2s}
.lb-sw i:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.lb-sw.on{background:#e6eeff;border-color:#0b3d91}.lb-sw.on i{background:#0b3d91}.lb-sw.on i:after{left:19px}
.lb-sw.off{opacity:.45;cursor:not-allowed}
.lb-swhelp{margin:0;font-size:.78rem;line-height:1.35;opacity:.85;padding:8px 12px;border-radius:10px;background:rgba(11,61,145,.07)}
.lb-code{display:grid;gap:6px;padding:12px 14px;border-radius:16px;background:#e6eeff;color:#0b2a63;text-align:center}
.lb-code small{letter-spacing:.12em;font-weight:900;font-size:.68rem;opacity:.75}
.lb-code>b{font-size:1.9rem;letter-spacing:.1em;line-height:1.1}.lb-wait{font-size:1.1rem!important;letter-spacing:0!important;opacity:.7}
.lb-codebtns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.lb-btn{padding:9px 14px;border:0;border-radius:10px;background:#0b3d91;color:#fff;font:inherit;font-weight:800;font-size:.85rem;cursor:pointer}
.lb-btn.alt{background:#fff;color:#0b3d91;border:2px solid #0b3d91}.lb-btn.small{padding:6px 10px;font-size:.75rem}
.lb-head{display:flex;justify-content:space-between;align-items:center;font-size:.9rem}
.lb-seats{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.lb-seat{display:grid;grid-template-columns:22px 36px 1fr auto;gap:8px;align-items:center;padding:8px 10px;border-radius:12px;background:rgba(0,0,0,.05);border-left:5px solid #9aa3b5}
.lb-seat .lb-n{font-style:normal;font-weight:900;opacity:.5;text-align:center}
.lb-seat .lb-av{font-size:1.5rem;text-align:center}
.lb-seat b{display:block;font-size:.92rem}.lb-seat small{display:block;opacity:.75;font-size:.74rem}
.lb-seat.me,.lb-seat.human{border-left-color:#1fb35a;background:rgba(31,179,90,.1)}
.lb-seat.ai{border-left-color:#7a55d9;background:rgba(122,85,217,.1)}
.lb-seat.open{border-left-style:dashed;opacity:.85}.lb-seat.away{opacity:.55}
.lb-invite{padding:13px;border:0;border-radius:14px;background:linear-gradient(135deg,#1fb35a,#0f8a45);color:#fff;font:inherit;font-weight:900;font-size:1rem;cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.2)}
.lb-extra{display:grid;gap:10px;padding:10px;border-radius:14px;background:rgba(0,0,0,.04)}
.lb-note{margin:0;text-align:center;font-size:.82rem;opacity:.85}
.lb-start{padding:15px;border:0;border-radius:14px;background:#0b3d91;color:#fff;font:inherit;font-weight:900;font-size:1.08rem;cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.25)}
.lb-start:disabled{opacity:.5}
.lb-status{margin:0;min-height:1.1em;text-align:center;font-size:.8rem;font-weight:700;color:#0b6b32}
.mc-count{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0}
.mc-count button{flex:1 1 56px;min-width:56px;padding:16px 0;border-radius:14px;border:2px solid rgba(0,0,0,.15);background:#fff;color:#16213a;font:inherit;font-weight:900;font-size:1.3rem;cursor:pointer}
.mc-count button:active{background:#0b3d91;color:#fff}
.fr-check{display:flex;gap:10px;align-items:center;font-weight:800}
.fr-pick{cursor:pointer}.fr-pick input{width:20px;height:20px}
.fr-pick{grid-template-columns:24px 36px 1fr!important}
html[data-theme="dark"] .lb-sw{background:rgba(255,255,255,.07)}html[data-theme="dark"] .lb-sw.on{background:#14306b;border-color:#7fb0ff}
html[data-theme="dark"] .lb-code{background:#14306b;color:#dbe7ff}
html[data-theme="dark"] .lb-btn.alt{background:transparent;color:#dbe7ff;border-color:#7fb0ff}
html[data-theme="dark"] .lb-seat,html[data-theme="dark"] .lb-extra{background:rgba(255,255,255,.07)}
html[data-theme="dark"] .mc-count button{background:rgba(255,255,255,.08);color:#e8ecf6;border-color:rgba(255,255,255,.2)}
/* 0.2.72b: boton Amigos en la portada, al lado contrario del saludo */
.hero-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:0 0 8px}
.hero-row .prof-hello{margin:0;padding:5px 11px;font-size:13px}
.home-friends{display:inline-flex;align-items:center;gap:6px;padding:4px 11px 4px 8px;border:0;border-radius:999px;background:rgba(255,255,255,.96);color:#16213a;box-shadow:0 2px 8px rgba(0,0,0,.28);cursor:pointer;font:inherit;text-align:left}
.home-friends>span{font-size:18px;line-height:1}
.home-friends b{display:block;font-size:13px;font-weight:900;line-height:1.1;color:#0b3d91}
.home-friends small{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#3a465f;line-height:1.2}
.home-friends .fr-dot{margin:0}
.home-friends:focus-visible{outline:3px solid #ffd23f;outline-offset:2px}
/* 0.2.79: selector de fondo de Dominópolis (cuadritos del mismo tamaño que las fichas) */
.dp-seg.bgs .dp-bgtile{flex:1 1 44px;max-width:64px;min-height:44px;padding:0;border-radius:12px;border:3px solid rgba(0,0,0,.18);background-color:#0a5fa0;background-size:cover;background-position:center;background-repeat:no-repeat;cursor:pointer}
.dp-seg.bgs .dp-bgtile.on{border-color:#0b3d91;box-shadow:0 0 0 2px #fff,0 0 0 5px #0b3d91}
html[data-theme="dark"] .dp-seg.bgs .dp-bgtile{border-color:rgba(255,255,255,.3)}
html[data-theme="dark"] .dp-seg.bgs .dp-bgtile.on{border-color:#fff;box-shadow:0 0 0 2px #0b1226,0 0 0 5px #7fb0ff}
/* 0.2.78: los dragones ahora son imágenes (img/dragones): círculo claro detrás para que se vean sobre cualquier fondo */
.av-dragon{border-radius:50%;background:#e9f4fb;padding:.07em;box-sizing:border-box;overflow:hidden}
.av-dragon img{width:100%;height:100%;display:block;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}
/* 0.2.74: fila de dragones de Madeline en el editor de perfil */
.prof-dragons{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:10px;border:2px solid #e0a800;border-radius:16px;background:linear-gradient(135deg,#fff3c4,#c9f5d6);margin-bottom:6px}
.prof-dragons p:after{content:" 🐉"}
.prof-dragons p{flex:0 0 100%;margin:0;text-align:center;font-size:.78rem;font-weight:800;color:#6a4a00}
.prof-dragons button{width:52px;height:52px;padding:4px;border-radius:14px;border:2px solid rgba(0,0,0,.12);background:rgba(255,255,255,.75);font-size:1.6rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.prof-dragons button .av-dragon{width:40px;height:40px;vertical-align:0}
.prof-dragons button.on{border-color:#1f9d55;box-shadow:0 0 0 3px #1f9d55}
.prof-big .av-dragon{width:1.1em;height:1.1em}
/* 0.2.77: sin zoom en portada, menús y juegos (solo el Sudoku se puede ampliar); avisos del botón Amigos */
html.no-zoom,html.no-zoom body{touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.no-zoom input,html.no-zoom select,html.no-zoom textarea{font-size:max(16px,1em)}
.home-friends{position:relative}
.home-friends .fr-badge{position:absolute;top:-7px;right:-5px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#e0243a;color:#fff;font:900 12px/22px system-ui,sans-serif;font-style:normal;text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.4),0 0 0 2px #fff}
.home-friends.has-notif{animation:seatGlow 1.6s ease-in-out infinite}
.fr-nlist{display:grid;gap:10px;margin:8px 0}
.fr-nt{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:14px;background:#fff;border:1px solid #d3dbe8;color:#14233b}
.fr-nt .fr-av{font-size:28px;line-height:1}
.fr-nt-t{flex:1 1 150px;min-width:0}
.fr-nt-t b{font-size:14px;line-height:1.25;display:block}
.fr-nt-b{display:flex;gap:8px;flex:0 0 100%;justify-content:flex-end}
.fr-nt-b button{min-height:40px;padding:8px 14px;border-radius:12px;border:2px solid #c3cde3;background:#f4f7fc;color:#14233b;font-weight:800;font-size:13px;cursor:pointer}
.fr-nt-b button.fr-go{background:#1f9d55;border-color:#1f9d55;color:#fff}
.fr-nt-b button:disabled{opacity:.6}
.fr-nt.ended{background:#fff4e5;border-color:#f0b35a}
html[data-theme="dark"] .fr-nt{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18);color:#e8ecf6}
html[data-theme="dark"] .fr-nt-b button{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:#e8ecf6}
html[data-theme="dark"] .fr-nt-b button.fr-go{background:#1f9d55;border-color:#1f9d55;color:#fff}
html[data-theme="dark"] .fr-nt.ended{background:rgba(240,179,90,.15);border-color:#f0b35a}
@media (prefers-reduced-motion:reduce){.home-friends.has-notif{animation:none}}
/* 0.2.76: barra «Fulano sin conexión · Invitar de nuevo» para el que se queda en la partida */
.fr-awaybar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(14px + var(--sab));z-index:10050;display:flex;align-items:center;justify-content:center;gap:10px 14px;flex-wrap:wrap;width:max-content;max-width:min(94vw,540px);padding:10px 14px;border-radius:16px;background:#14233b;color:#fff;font-size:14px;font-weight:700;box-shadow:0 8px 26px rgba(0,0,0,.4);border:2px solid #f5b800}
.fr-awaybar>div{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.fr-awaybar button{min-height:40px;padding:8px 14px;border-radius:12px;border:2px solid rgba(255,255,255,.35);background:transparent;color:#fff;font:inherit;font-size:13px;cursor:pointer}
.fr-awaybar button.fr-go{background:#f5b800;border-color:#f5b800;color:#2a1b00}
/* 0.2.75: Domino: elegir el lado tocando la imagen de la ficha de cada extremo */
.d-side{flex-direction:row;gap:14px}
.d-side>span{flex:0 0 100%;text-align:center}
.d-sidebtn{position:relative;width:min(44vw,150px);padding:6px;border:3px solid #f5b800;border-radius:14px;background:rgba(255,255,255,.92);box-shadow:0 3px 10px rgba(0,0,0,.25);cursor:pointer;animation:seatGlow 1.4s ease-in-out infinite}
.d-sidebtn svg{display:block;width:100%;height:auto}
.d-sidebtn:after{content:"";position:absolute;top:6px;bottom:6px;width:calc(50% - 6px);border-radius:8px;background:rgba(245,184,0,.35);border:2px dashed #d99a00;pointer-events:none}
.d-sidebtn.L:after{left:6px}
.d-sidebtn.R:after{right:6px}
.d-sidebtn:hover,.d-sidebtn:focus-visible{background:#fff7d6;outline:none;transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){.d-sidebtn{animation:none}}
/* 0.2.75: tarjeta de cada jugador en Ajedrez y Damas (color, nombre, y brilla cuando le toca) */
.seat-chip{display:flex;align-items:center;gap:10px;margin:8px auto;padding:7px 14px;max-width:min(100%,520px);border-radius:14px;background:#fff;border:2px solid #d3dbe8;color:#14233b;transition:background .25s,border-color .25s,box-shadow .25s}
.seat-chip .seat-sw{font-size:26px;line-height:1}
/* 0.3.72: reloj de ajedrez dentro de la tarjeta de cada jugador (seatChips en js/other-games.js) */
.seat-clock{margin-left:auto;padding:4px 10px;border-radius:10px;background:#14233b;color:#fff;font:800 18px/1.1 ui-monospace,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}
.seat-clock.low{background:#c0392b}
/* 0.3.72: reglas de la casa de DOS (houseHTML en js/dos-game.js) e historial de manos del Dominó (.dm-hist) */
.dos-house{display:grid;gap:8px;margin:14px auto 0;max-width:520px;text-align:left}.dos-house .dos-kicker{margin:0;text-align:center}
.dm-hist{margin-top:10px}
/* 0.3.85: Puntos y cajas, tablero grande de 6×6 (drawDots en js/extra-games.js) */
.dots-board.w6{--dot:11px;grid-template-columns:repeat(6,var(--dot) 1fr) var(--dot);grid-template-rows:repeat(6,var(--dot) 1fr) var(--dot);width:min(100%,430px)}
/* 0.3.80: oferta de compra de Dominópolis (js/dominopolis-ui.js) */
.dp-offer{margin:10px 0;padding:10px 12px;border-radius:12px;border:2px solid #f5b800;background:#fff8d6;color:#14233b}
.dp-offer label{display:block;margin-bottom:6px;font-weight:800;font-size:14px}.dp-offer .dp-note{margin:4px 0;color:inherit}
.dp-offer input{flex:1 1 90px;min-width:0;min-height:44px;padding:6px 10px;border-radius:10px;border:2px solid #c9d3e3;background:#fff;color:#14233b;font:inherit;font-size:16px}
/* 0.3.79: misil de Batalla naval (js/naval.js): cae en diagonal sobre la casilla y ahí empieza la explosión o la salpicadura de siempre */
.nv-cell.incoming{background:none!important;overflow:visible;z-index:8}.nv-cell.incoming::after{content:none!important}
.nv-missile{position:absolute;left:50%;top:50%;width:26%;height:70%;margin:-70% 0 0 -13%;border-radius:50% 50% 22% 22%/38% 38% 12% 12%;background:linear-gradient(180deg,#e9eef5 0 55%,#c0392b 55% 70%,#e9eef5 70%);box-shadow:0 0 0 1px #0007;transform-origin:50% 100%;pointer-events:none;animation:nvMissile .3s cubic-bezier(.5,0,.9,.6) forwards}
.nv-missile::after{content:"";position:absolute;left:15%;right:15%;top:100%;height:120%;border-radius:50%;background:linear-gradient(180deg,#ff6a00,#ffd54a 40%,transparent);opacity:.9}
@keyframes nvMissile{from{transform:translate(-260%,-520%) rotate(153deg);opacity:.2}to{transform:translate(0,0) rotate(153deg);opacity:1}}
/* 0.3.78: salas abiertas (lista en js/cloud.js, interruptor en js/lobby.js) */
.or-list{display:grid;gap:8px;margin:10px 0}
.or-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;min-height:56px;padding:10px 14px;border-radius:14px;border:2px solid #d3dbe8;background:#fff;color:#14233b;font-family:inherit;text-align:left;cursor:pointer}
.or-row b{font-size:16px}.or-row span{grid-column:1;font-size:13px;color:#5b6b85;font-weight:700}.or-row i{grid-row:1/3;grid-column:2;font-style:normal;font-weight:800;color:#1761b2}
html[data-theme="dark"] .or-row{background:#1b2b45;border-color:#33466a;color:#e8f0ff}html[data-theme="dark"] .or-row span{color:#a9b9d6}html[data-theme="dark"] .or-row i{color:#8fc0ff}
.lb-pub{margin:10px 0 2px}
/* 0.3.77: Escoba de cuatro: los otros tres jugadores arriba (drawEscoba en js/extra-games.js) */
.es-opp4{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:end;justify-items:center}
.es-opp4>div{display:grid;justify-items:center;gap:2px;padding:4px 6px;border-radius:10px;min-width:0}
.es-opp4>div.on{background:#ffffff26;box-shadow:0 0 0 2px #f5b800}
.es-opp4 .es-deck{grid-column:1/-1}
/* 0.3.77: técnica más difícil del tablero, debajo de la dificultad (js/smart-hints.js) */
#difficultyLabel{min-height:2.3em}   /* el sitio de la etiqueta ya está guardado: el tablero no baja cuando aparece */
#difficultyLabel .tech-tag{display:block;margin-top:1px;font-size:11px;line-height:1.1;font-weight:700;letter-spacing:0;text-transform:none;opacity:.72}
/* 0.3.76: ficha de Parchimi que va saltando casilla a casilla (place en js/parchis.js) */
.pc-piece.hop{z-index:7;scale:1.18;box-shadow:0 0 0 1px #0009,0 5px 8px #000a}
/* 0.3.76: frases de mesa del Dominó online (js/domino-party.js) */
.dp-talk{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:6px auto 10px;max-width:560px}
.dp-talk button{min-height:38px;padding:6px 12px;border-radius:999px;border:2px solid #1761b2;background:#fff;color:#0b3d91;font-family:inherit;font-weight:700;font-size:14px;cursor:pointer}
html[data-theme="dark"] .dp-talk button{background:#1b2b45;color:#cfe0ff;border-color:#5f86d6}
/* 0.3.76: reloj de turno de las partidas online (fsTop en js/other-games.js) */
.fs-clock{font-style:normal;font-variant-numeric:tabular-nums}.fs-clock.slow{color:#ffd24a;font-weight:800}
/* 0.3.75: formulario de «Cuenta y nube» (js/cloud.js) */
.cl-form{display:grid;gap:10px;margin:12px 0}.cl-form label{display:grid;gap:4px;font-weight:700;font-size:14px;text-align:left}
.cl-form input{min-height:44px;padding:8px 12px;border-radius:12px;border:2px solid #c9d3e3;background:#fff;color:#14233b;font:inherit;font-size:16px}
.cl-form input:focus-visible{outline:3px solid #f5b800;outline-offset:1px}
/* 0.3.74: comodín del Rummy (pcard en js/extra-games.js) */
.pcard.joker{color:#7b2fbe;background:linear-gradient(160deg,#fff,#f1e4ff)}.pcard.joker em{font-size:1.6em}
/* 0.3.73: categorías de STOP a elegir (catsHTML en js/stop-party.js): botones redondos, encendido = lleno */
.sp-cats{margin:14px auto 0;max-width:560px;text-align:center}.sp-cats .dos-kicker{margin:0 0 8px}.sp-cats small{display:block;margin-top:8px;font-size:13px;opacity:.8}
.sp-catlist{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.sp-catlist button{min-height:36px;padding:6px 12px;border-radius:999px;border:2px solid #c9d3e3;background:transparent;color:inherit;font-family:inherit;font-weight:700;font-size:13px;line-height:1.1;opacity:.55;cursor:pointer}
.sp-catlist button.on{background:#1761b2;border-color:#1761b2;color:#fff;opacity:1}
.ch-log{font-variant-numeric:tabular-nums;letter-spacing:.2px}.ch-log b{opacity:.6;font-weight:700}
.seat-chip b{display:block;font-size:15px;line-height:1.15}
.seat-chip small{display:block;color:#5b6b85;font-size:12px;font-weight:700}
.seat-chip.turn{border-color:#f5b800;background:linear-gradient(135deg,#fff8d6,#ffe9a0);box-shadow:0 0 0 3px rgba(245,184,0,.45),0 0 18px rgba(245,184,0,.6);animation:seatGlow 1.4s ease-in-out infinite}
.seat-chip.turn small{color:#6a4a00}
@keyframes seatGlow{50%{box-shadow:0 0 0 4px rgba(245,184,0,.7),0 0 26px rgba(245,184,0,.9)}}
html[data-theme="dark"] .seat-chip{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18);color:#e8ecf6}
html[data-theme="dark"] .seat-chip small{color:#aab6d4}
html[data-theme="dark"] .seat-chip.turn{background:rgba(245,184,0,.2);border-color:#f5b800;color:#fff}
html[data-theme="dark"] .seat-chip.turn small{color:#ffe08a}
@media (prefers-reduced-motion:reduce){.seat-chip.turn{animation:none}}
/* 0.2.74: paneles con fondo translucido para que se lea sobre la escena, y el tablero un poco mas chico para dejar ver el paisaje */
.mini-game.dp .dos-head{background:rgba(255,255,255,.9);border-radius:16px;padding:8px 12px;margin-bottom:8px}
.mini-game.dp .dp-panel{background:rgba(255,255,255,.88);border-radius:16px;padding:10px}
html[data-theme="dark"] .mini-game.dp .dos-head,html[data-theme="dark"] .mini-game.dp .dp-panel{background:rgba(10,20,45,.82)}
.dp-rot{scale:.93}
/* 0.2.74: fondo de Dominópolis (playa dominicana de día; de noche con luna). Va detrás del tablero, sin tocar la lógica. */
#miniGameStage .mini-game.dp .dp-stage{border-radius:22px;overflow:hidden;background-color:#0a5fa0;background-size:cover;background-position:center;background-repeat:no-repeat;box-shadow:inset 0 0 0 3px rgba(255,255,255,.6),0 6px 18px rgba(8,40,90,.3);
 background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 360' preserveAspectRatio='xMidYMid slice'><defs><linearGradient id='s' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='%234fb6f2'/><stop offset='1' stop-color='%23e3f6ff'/></linearGradient><linearGradient id='m' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='%2335cbd8'/><stop offset='1' stop-color='%230a5fa0'/></linearGradient><g id='p'><path d='M26 372Q42 300 30 238' stroke='%236b4423' stroke-width='8' fill='none' stroke-linecap='round'/><g fill='%23178a4a'><path d='M30 238q-30-6-52 14q28-4 52-14z'/><path d='M30 238q-8-32-36-38q24 14 36 38z'/><path d='M30 238q14-30 46-28q-28 6-46 28z'/><path d='M30 238q32 0 50 22q-28-12-50-22z'/></g><circle cx='30' cy='241' r='4' fill='%238a5a2b'/></g></defs><rect width='400' height='360' fill='url(%23s)'/><circle cx='334' cy='56' r='46' fill='%23ffe27a' opacity='.28'/><circle cx='334' cy='56' r='30' fill='%23ffe27a'/><g fill='%23fff' opacity='.92'><ellipse cx='72' cy='62' rx='38' ry='11'/><ellipse cx='100' cy='53' rx='26' ry='10'/><ellipse cx='222' cy='38' rx='34' ry='9'/><ellipse cx='246' cy='44' rx='22' ry='8'/></g><rect y='168' width='400' height='192' fill='url(%23m)'/><path d='M0 168Q100 158 200 168T400 168V175H0z' fill='%23fff' opacity='.55'/><g stroke='%23fff' stroke-opacity='.38' fill='none' stroke-width='2' stroke-linecap='round'><path d='M110 214q15-8 30 0t30 0M250 236q15-8 30 0t30 0M60 286q15-8 30 0t30 0M290 318q15-8 30 0t30 0M170 330q15-8 30 0t30 0'/></g><path d='M296 203V168l28 35z' fill='%23fff'/><path d='M286 206h48l-8 10h-32z' fill='%23d62027'/><use href='%23p'/><use href='%23p' transform='translate(400 20) scale(-1 1)'/></svg>")}
html[data-theme="dark"] #miniGameStage .mini-game.dp .dp-stage{background-color:#071d44;background-size:cover;background-position:center;background-repeat:no-repeat;box-shadow:inset 0 0 0 3px rgba(255,255,255,.25),0 6px 18px rgba(0,0,0,.45);
 background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 360' preserveAspectRatio='xMidYMid slice'><defs><linearGradient id='s' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='%23081a44'/><stop offset='1' stop-color='%23365a9a'/></linearGradient><linearGradient id='m' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='%231b6a9a'/><stop offset='1' stop-color='%23071d44'/></linearGradient><g id='p'><path d='M26 372Q42 300 30 238' stroke='%2332200f' stroke-width='8' fill='none' stroke-linecap='round'/><g fill='%230d4a2a'><path d='M30 238q-30-6-52 14q28-4 52-14z'/><path d='M30 238q-8-32-36-38q24 14 36 38z'/><path d='M30 238q14-30 46-28q-28 6-46 28z'/><path d='M30 238q32 0 50 22q-28-12-50-22z'/></g></g></defs><rect width='400' height='360' fill='url(%23s)'/><g fill='%23fff' opacity='.85'><circle cx='40' cy='40' r='1.6'/><circle cx='120' cy='78' r='1.3'/><circle cx='200' cy='30' r='1.8'/><circle cx='260' cy='90' r='1.3'/><circle cx='370' cy='120' r='1.5'/><circle cx='160' cy='120' r='1.2'/><circle cx='300' cy='26' r='1.4'/></g><circle cx='332' cy='58' r='34' fill='%23fff6c9' opacity='.2'/><circle cx='332' cy='58' r='22' fill='%23fff6c9'/><circle cx='342' cy='52' r='20' fill='%23081a44' opacity='.0'/><rect y='168' width='400' height='192' fill='url(%23m)'/><path d='M0 168Q100 158 200 168T400 168V175H0z' fill='%23bcd4ff' opacity='.35'/><path d='M300 168h66v10h-66z' fill='%23fff6c9' opacity='.22'/><g stroke='%23bcd4ff' stroke-opacity='.28' fill='none' stroke-width='2' stroke-linecap='round'><path d='M110 214q15-8 30 0t30 0M250 236q15-8 30 0t30 0M60 286q15-8 30 0t30 0M290 318q15-8 30 0t30 0M170 330q15-8 30 0t30 0'/></g><use href='%23p'/><use href='%23p' transform='translate(400 20) scale(-1 1)'/></svg>")}

/* ===== 0.2.80 — home page polish: compact hero, shortcuts right under it, entrance animation =====
   Layout only (sizes, order, positions): colours still come from the theme / style blocks above. */
@keyframes homeIn{from{opacity:0;transform:translateY(14px)}}
@keyframes homeShine{0%,70%{transform:translateX(-140%) skewX(-20deg)}100%{transform:translateX(320%) skewX(-20deg)}}
@keyframes homeFloat{0%,100%{transform:rotate(5deg) translateY(0)}50%{transform:rotate(3deg) translateY(-7px)}}
#homeScreen .home-main>*,#homeScreen .games-section>*{animation:homeIn .45s ease-out backwards}
#homeScreen .home-main>*:nth-child(2),#homeScreen .games-section>*:nth-child(1){animation-delay:.06s}
#homeScreen .home-main>*:nth-child(3),#homeScreen .games-section>*:nth-child(2){animation-delay:.12s}
#homeScreen .home-main>*:nth-child(n+4),#homeScreen .games-section>*:nth-child(3){animation-delay:.18s}
#homeScreen #playBtn{position:relative;overflow:hidden}
#homeScreen #playBtn::after{content:"";position:absolute;top:0;bottom:0;left:0;width:34%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:homeShine 4.5s ease-in-out infinite;pointer-events:none}
#homeScreen .hero-sudoku{animation:homeFloat 6s ease-in-out infinite}
#homeScreen .home-option,#homeScreen .level-card,#homeScreen #homeMulti,#homeScreen #homeRank,#homeScreen #playBtn{transition:transform .14s ease,box-shadow .14s ease}
#homeScreen .home-option:active,#homeScreen .level-card:active,#homeScreen #homeMulti:active,#homeScreen #homeRank:active,#homeScreen #playBtn:active{transform:scale(.97)}
@media(max-width:560px){
 /* hero: greeting + friends on top, shorter title, the little sudoku tucked in the corner, big Jugar */
 #homeScreen .welcome-hero{min-height:0;padding:16px 16px 16px}
 #homeScreen .hero-copy{position:relative;z-index:1;display:flex;flex-direction:column}
 #homeScreen .hero-row{order:-1;align-items:center;margin:0 0 12px}
 #homeScreen .home-kicker{margin:0 0 7px;font-size:9px}
 #homeScreen #homeTitle{max-width:68%;font-size:clamp(23px,7vw,29px);line-height:1.06}
 #homeScreen .hero-description{display:none}
 #homeScreen .hero-art{position:absolute;right:4px;top:46px;z-index:0;width:150px;min-height:0;height:150px;margin:0;transform:scale(.7);transform-origin:top right;pointer-events:none}
 #homeScreen .hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-top:18px}
 #homeScreen #playBtn{grid-column:1/-1;width:100%;min-height:66px}
 #homeScreen #playBtn strong{font-size:19px}
 #homeScreen #homeMulti,#homeScreen #homeRank{width:100%;min-width:0;min-height:58px;margin:0}
 #homeScreen #homeRank>span:nth-child(2),#homeScreen #homeMulti>span:nth-child(2){min-width:0}
 #homeScreen #homeRank small,#homeScreen #homeMulti small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
 #homeScreen #homeRank>i{display:none}
 /* order under the hero: daily + statistics side by side, level, tutorial, then the games */
 #homeScreen .home-main{display:flex;flex-direction:column}
 #homeScreen .games-section{display:contents}
 #homeScreen .soon-row{order:1;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 0}
 #homeScreen .soon-row .home-option{min-height:96px;padding:12px 12px;align-items:flex-end;background-size:auto 72%,auto;background-position:right -38px top -4px,0 0}
 #homeScreen .soon-row .option-copy strong{font-size:14px}
 #homeScreen .soon-row .option-copy small{font-size:9.5px;line-height:1.25}
 #homeScreen .level-card{order:2;margin-top:10px}
 #homeScreen .tut-banner{order:3;margin-top:10px}
 #homeScreen .section-heading{order:4;margin:18px 2px 10px}
 #homeScreen .home-games{order:5;margin-bottom:14px}
}
@media(prefers-reduced-motion:reduce){#homeScreen .home-main>*,#homeScreen .games-section>*,#homeScreen #playBtn::after,#homeScreen .hero-sudoku{animation:none}}
html[data-fx="off"] #homeScreen .home-main>*,html[data-fx="off"] #homeScreen .games-section>*,html[data-fx="off"] #homeScreen #playBtn::after,html[data-fx="off"] #homeScreen .hero-sudoku{animation:none}
/* ===== 0.2.80 — Damas: animated moves, capture marks, last-move picture ===== */
#miniGameStage .checkers-layout .checkers-board{position:relative}
.ck-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 9px}
.ck-bar span{font-size:12.5px;font-weight:850}
.ck-bar .mini-tool:disabled{opacity:.45;cursor:default}
#miniGameStage .checker-cell.ck-trail{box-shadow:inset 0 0 0 100px #ffd400c2,inset 0 0 0 3px #ff8a00!important}
.ck-xm{position:absolute;inset:0;z-index:5;display:grid;place-items:center;color:#e5121f;font-size:clamp(22px,8vw,44px);font-style:normal;font-weight:900;line-height:1;text-shadow:0 0 3px #fff,0 0 7px #fff,0 2px 4px #0006;pointer-events:none;animation:ckX .32s cubic-bezier(.2,.8,.3,1.5)}
@keyframes ckX{from{opacity:0;transform:scale(2.4) rotate(-25deg)}}
#miniGameStage .checker-piece.ck-fly{position:absolute;left:0;top:0;z-index:7;margin:0;pointer-events:none;will-change:transform}   /* 0.2.81: no drop-shadow filter (it made the move stutter on phones) */
#miniGameStage .checker-piece.ck-ghost{position:absolute;opacity:.9}
.ck-photo{position:fixed;inset:0;z-index:42;display:grid;place-items:center;padding:16px;background:#091a30cc}
.ck-photo-card{width:min(430px,100%);max-height:100%;overflow-y:auto;padding:16px;border-radius:22px;background:#fff;color:#10213b;text-align:center;box-shadow:0 24px 80px #07172b66}
.ck-photo-card>p{margin:0 0 4px;color:#d62027;font-size:9px;font-weight:900;letter-spacing:1.6px}
.ck-photo-card h3{margin:0 0 10px;font-size:19px}
.ck-photo-card small{display:block;margin-top:8px;color:#6b7b92;font-size:11px;font-weight:700;letter-spacing:0}
#miniGameStage .checkers-board.ck-mini{width:100%;height:auto;aspect-ratio:1;pointer-events:none}
.ck-mini .checker-cell{position:relative;display:grid;place-items:center}
.ck-mini .checker-piece.ck-ghost{position:static;opacity:.55;outline:2px dashed #fff;outline-offset:-2px}
.ck-n{position:absolute;right:1px;top:1px;z-index:6;padding:0 4px;border-radius:8px;background:#10213b;color:#fff;font-size:9px;font-style:normal;font-weight:900;line-height:1.5}
.ck-photo-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.ck-photo-btns button{min-height:44px;border:0;border-radius:12px;background:#edf3fb;color:#27456d;font-size:13px;font-weight:850}
.ck-photo-btns button:first-child{background:#0b3d91;color:#fff}
.ck-photo-btns button:disabled{opacity:.4}
html[data-theme="dark"] .ck-photo-card{background:#16233a;color:#e6edf7}
html[data-theme="dark"] .ck-photo-card small{color:#9fb0c8}
html[data-theme="dark"] .ck-photo-btns button{background:#22344f;color:#dbe6f5}
html[data-theme="dark"] .ck-photo-btns button:first-child{background:#1f5fc4;color:#fff}
@media(prefers-reduced-motion:reduce){.ck-xm{animation:none}}
/* ===== 0.2.80 — Ajedrez: animated moves, capture mark, last-move picture (shares the Damas styles) ===== */
#miniGameStage .chess-board.chess-main{position:relative}
#miniGameStage .chess-cell{position:relative}
#miniGameStage .chess-cell.ck-trail{box-shadow:inset 0 0 0 100px #ffd400c2,inset 0 0 0 3px #ff8a00!important}
#miniGameStage .chess-cell.ch-hide>:not(.co):not(.ch-ghost){visibility:hidden}
.ch-fly{position:absolute;left:0;top:0;z-index:7;display:grid;place-items:center;line-height:1;pointer-events:none;filter:drop-shadow(0 8px 7px #0007)}
.ch-ghost{position:absolute;inset:0;display:grid;place-items:center;line-height:1;pointer-events:none}
.ch-ghost.still{position:static;opacity:.5}
.ch-xm{position:absolute;right:1px;top:1px;z-index:5;display:grid;place-items:center;width:42%;aspect-ratio:1;border-radius:50%;background:#fff;color:#e5121f;font-size:clamp(11px,3.4vw,19px);font-style:normal;font-weight:900;line-height:1;box-shadow:0 0 0 2px #e5121f,0 2px 5px #0006;pointer-events:none;animation:ckX .32s cubic-bezier(.2,.8,.3,1.5)}
#miniGameStage .chess-board.ck-mini{width:100%;height:auto;aspect-ratio:1;pointer-events:none}
.ck-mini .chess-cell{position:relative;display:grid;place-items:center}
@media(prefers-reduced-motion:reduce){.ch-xm{animation:none}}

/* 0.2.82: iconos de Yukiri (img/yukiri): fotos redondas que llenan el circulo; fila rosada en el editor de perfil */
.av-dragon.av-pic{padding:0;background:#fde4ee}
.av-dragon.av-pic img{object-fit:cover}
.av-dragon.av-pic img[src$="yukiri2.png"]{transform:scale(1.3)}
.av-dragon.av-pic img[src$="yukiri3.png"]{transform:scale(1.13)}
.prof-dragons.prof-yuki{border-color:#e86a9a;background:linear-gradient(135deg,#ffe3ee,#e6f3ff)}
.prof-dragons.prof-yuki p{color:#8a1f4d}
.prof-dragons.prof-yuki p:after{content:" \1F338"}
.prof-dragons.prof-yuki button{width:64px;height:64px;padding:3px;border-radius:50%}
.prof-dragons.prof-yuki button .av-dragon{width:54px;height:54px}

/* 0.2.83: Domino - botella PANDA (mas alta que la anterior) y globo de frases un poco mas largo */
.dm-bottle,.dm-foot .dm-bottle{width:40px;height:110px}
@media(max-width:380px){.dm-bottle,.dm-foot .dm-bottle{width:36px;height:100px}}
.dm-bottle .b{top:22%}
.dm-cheer{animation-duration:2.6s}

/* 0.2.84: fila dorada del logo SUDOMI (perfil Maicolino) */
.prof-dragons.prof-set-maico{border-color:#c9a23a;background:linear-gradient(135deg,#1c2238,#3a3320)}
.prof-dragons.prof-set-maico p{color:#f0d27a}
.prof-dragons.prof-set-maico p:after{content:" \1F3A9"}
/* 0.2.88: fila roja y negra de Pollo Chan */
.prof-dragons.prof-set-pollo{border-color:#b3161b;background:linear-gradient(135deg,#1a0a0a,#5a0f12)}
.prof-dragons.prof-set-pollo p{color:#ffd9d9}
.prof-dragons.prof-set-pollo p:after{content:" \1F414"}

/* 0.2.85: guia de instalacion en iPhone con capturas reales (img/instalar): la foto arriba, a todo el ancho, y el texto debajo */
.pg-card li.pg-photo{grid-template-columns:1fr;gap:8px}
.pg-photo .pg-pic{height:auto;padding:0;background:#0b1626}
.pg-pic img.pg-shot{width:100%;height:auto;border-radius:11px}

/* 0.2.86: PARCHIS (js/parchis.js). Las variables --pc-bg/cell/line/num/safe/nest las pone el tema; las lineas de color no cambian */
.pc{--pc-bg:#fff;--pc-cell:#fff;--pc-line:#111;--pc-num:#111;--pc-safe:#6b3500;--pc-nest:#fff}
.pc-board{position:relative;width:min(100%,560px);aspect-ratio:1;margin:0 auto;border-radius:8px;overflow:hidden;box-shadow:0 8px 22px #0005;--pc-u:16px;touch-action:manipulation}
.pc-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.pc-marks text{font:700 .5px system-ui,Arial,sans-serif;fill:var(--pc-num)}
.pc-av{position:absolute;width:23.2%;height:23.2%;margin:-11.6% 0 0 -11.6%;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--pc-nest);font-size:calc(var(--pc-u)*3);line-height:1;pointer-events:none}
.pc-av span{display:grid;place-items:center;width:100%;height:100%}
.pc-av .av-dragon{width:100%;height:100%;padding:0;vertical-align:0}
.pc-av.turn{box-shadow:0 0 0 3px #fff,0 0 0 6px var(--pc-c),0 0 18px 6px #ffd54a;animation:pcTurn 1.1s ease-in-out infinite alternate}
.pc-piece{position:absolute;width:5.6%;height:5.6%;margin:-2.8% 0 0 -2.8%;padding:0;border-radius:50%;border:2px solid #fff;background:radial-gradient(circle at 34% 30%,#ffffffb0,#fff0 46%),var(--pc-c);box-shadow:0 0 0 1px #0009,0 2px 3px #0008;transition:left .16s linear,top .16s linear;z-index:2;-webkit-tap-highlight-color:transparent}
.pc-piece:disabled{opacity:1}
.pc-piece::after{content:"";position:absolute;inset:-7px;border-radius:50%}
.pc-piece.can{z-index:4;cursor:pointer;animation:pcCan .6s ease-in-out infinite alternate}
.pc-piece.home{width:4.4%;height:4.4%;margin:-2.2% 0 0 -2.2%}
@keyframes pcCan{to{transform:scale(1.28);box-shadow:0 0 0 2px #111,0 0 0 5px #ffe14a,0 2px 6px #000a}}
@keyframes pcTurn{to{box-shadow:0 0 0 3px #fff,0 0 0 6px var(--pc-c),0 0 26px 10px #ffd54a}}
.pc-seats{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:0 0 10px}
.pc-seat{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#fff;color:#10213b;border:2px solid #dbe3ef;font-size:12.5px;font-weight:800}
.pc-seat u{width:13px;height:13px;border-radius:50%;background:var(--pc-c);border:1.5px solid #0007;text-decoration:none}
.pc-seat b,.pc-seat i{display:inline;font-style:normal;font-weight:800}.pc-seat i{opacity:.7;font-size:11.5px}
.pc-seat.turn{border-color:var(--pc-c);box-shadow:0 0 0 3px #ffd54a}
.pc-hud{display:flex;align-items:center;gap:12px;margin:12px auto 0;max-width:560px}
.pc-dice{flex:none;width:68px;height:68px;border-radius:16px;border:3px solid #0006;background:var(--pc-c,#fff);color:var(--pc-ink,#111);font-size:46px;line-height:1;display:grid;place-items:center;padding:0 0 4px;cursor:pointer;box-shadow:0 5px 0 #0004}
.pc-dice:disabled{opacity:.85;cursor:default}
.pc-dice.go{animation:pcDice .55s ease-in-out infinite alternate}
@keyframes pcDice{to{transform:translateY(-4px) rotate(-6deg);box-shadow:0 9px 0 #0003,0 0 0 4px #ffd54a}}
.pc-say{display:grid;gap:2px;min-width:0;text-align:left}.pc-say b{display:block;font-size:15px;line-height:1.25}.pc-say small{display:block;font-size:12.5px;opacity:.75;min-height:1.2em}
.pc-foot{display:flex;gap:8px;justify-content:center;margin-top:12px}.pc-foot .ghost{background:transparent;color:inherit;border:2px solid #9aa9c0;box-shadow:none}
.pc-menu{display:grid;gap:12px;max-width:480px;margin:0 auto}
.pc-hero{display:grid;justify-items:center;gap:2px;font-size:40px;text-align:center}.pc-hero b{display:block;font-size:20px}.pc-hero span{display:block;font-size:13px;opacity:.8}
.pc-opt{display:grid;gap:6px}.pc-opt>b{display:block;font-size:13px}
.pc-seg{display:flex;flex-wrap:wrap;gap:6px}
.pc-seg button{flex:1 1 0;min-width:86px;padding:9px 8px;border-radius:12px;border:2px solid #cfd8e6;background:#fff;color:#10213b;font-weight:800;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}
.pc-seg button.on{border-color:#0b3d91;box-shadow:0 0 0 2px #0b3d91}
.pc-sw{width:16px;height:16px;border-radius:4px;border:2px solid #111;flex:none}
.pc-mini{width:min(72%,300px);box-shadow:0 4px 12px #0004}
.pc-big{font-size:17px;padding:13px}
.pc-sheet{position:fixed;inset:0;z-index:70;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px}
.pc-sheet-in{max-width:440px;max-height:100%;overflow:auto;background:#fff;color:#10213b;border-radius:18px;padding:16px 18px;text-align:left}
.pc-sheet-in h3{margin:0 0 8px}.pc-sheet-in ul{margin:0 0 12px;padding-left:18px;display:grid;gap:6px;font-size:14px;line-height:1.4}.pc-sheet-in b{display:inline}
/* 0.2.87: dos dados que ruedan sobre el tablero, interruptor «Parchis guerra» y avisos de la sala online */
.pc-die{position:absolute;width:10.4%;height:10.4%;margin:-5.2% 0 0 -5.2%;padding:1.2%;box-sizing:border-box;border-radius:20%;border:2px solid #111;background:linear-gradient(145deg,#fff,#e3e6ee);box-shadow:0 3px 0 #0006,0 6px 10px #0006;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);z-index:6;-webkit-tap-highlight-color:transparent}
.pc-die.hidden{display:none}
.pc-die:disabled{opacity:1}
.pc-die i{margin:14%;border-radius:50%}
.pc-die i.on{background:#111;box-shadow:inset 0 1px 1px #fff5}
.pc-die.used{opacity:.38;box-shadow:none}
.pc-die.pickable{cursor:pointer}
.pc-die.sel{box-shadow:0 0 0 3px #ffd54a,0 0 0 5px #111,0 6px 10px #0006}
.pc-dice{grid-template-rows:auto auto;gap:0;padding:4px 0 6px;font-size:34px}
.pc-dice span{display:block;line-height:1}.pc-dice small{display:block;font-size:11px;font-weight:900;letter-spacing:.3px;line-height:1}
.pc-av.away{filter:grayscale(1);opacity:.6}
.pc-switch{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;border:2px solid #cfd8e6;background:#fff;color:#10213b;cursor:pointer}
.pc-switch input{position:absolute;opacity:0;width:0;height:0}
.pc-switch i{flex:none;position:relative;width:46px;height:26px;border-radius:999px;background:#c5cedc;transition:background .15s}
.pc-switch i::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0006;transition:transform .15s}
.pc-switch input:checked+i{background:#d62027}.pc-switch input:checked+i::after{transform:translateX(20px)}
.pc-switch input:focus-visible+i{outline:3px solid #ffb300;outline-offset:2px}
.pc-switch span{display:grid;gap:1px;text-align:left}.pc-switch b{display:block;font-size:14px}.pc-switch small{display:block;font-size:12px;opacity:.75}
.pc-switch small.dev{opacity:1;color:#b35b00;font-weight:800}
.pc-hint{display:block;font-size:12px;opacity:.75}
.pc-note{margin:0;padding:8px 12px;border-radius:12px;font-size:13px;font-weight:700}.pc-note.bad{background:#ffe3e3;color:#8f1016}
/* 0.2.93: PARCHIS GUERRA - vidas sobre la ficha, escudo, apuntar con cartas, duelo, cartas y marcador */
.pc-piece{font:900 calc(var(--pc-u)*.74)/1 system-ui,Arial,sans-serif;color:var(--pc-ink,#fff);display:grid;place-items:center;text-shadow:0 0 2px #0008}
.pc-piece.hurt{border-color:#ff5a5a;box-shadow:0 0 0 1px #0009,0 0 0 3px #ff5a5a88,0 2px 3px #0008}
.pc-piece.sh{border-color:#5ee0ff;box-shadow:0 0 0 1px #0009,0 0 0 4px #5ee0ffcc,0 0 10px 3px #5ee0ff}
.pc-piece.tgt{z-index:5;cursor:crosshair;animation:pcTgt .5s ease-in-out infinite alternate}
@keyframes pcTgt{to{transform:scale(1.3);box-shadow:0 0 0 2px #111,0 0 0 6px #ff3b3b,0 2px 6px #000a}}
.pc-marks text.pc-box{font-size:.8px}
.pc-cards{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:10px auto 0;max-width:560px}
.pc-card{display:flex;align-items:center;gap:5px;padding:7px 10px;border-radius:12px;border:2px solid #c9a23a;background:linear-gradient(145deg,#fff8de,#ffe7a8);color:#3a2a05;font-weight:800;font-size:12.5px;cursor:pointer}
.pc-card span{font-size:18px;line-height:1}.pc-card b{display:inline;font-weight:800}
.pc-card:disabled{opacity:.5;cursor:default;filter:grayscale(.5)}
.pc-card.on{border-color:#d62027;box-shadow:0 0 0 3px #d62027}
.pc-cardinfo{flex:0 0 100%;margin:2px 0 0;text-align:center;font-size:12.5px;opacity:.85}
.pc-duel,.pc-score,.pc-choice{max-width:560px;margin:10px auto 0;padding:10px 12px;border-radius:14px;background:#fff;color:#10213b;border:2px solid #d62027;text-align:center}
.pc-duel h4,.pc-score h4{margin:0 0 6px;font-size:14.5px}.pc-duel p,.pc-score p,.pc-choice p{margin:4px 0;font-size:13.5px}.pc-duel b{display:inline}
.pc-rps{display:flex;gap:10px;justify-content:center;margin-top:6px}
.pc-rps button{width:64px;height:64px;border-radius:16px;border:2px solid #0b3d91;background:#eef3ff;font-size:32px;line-height:1;cursor:pointer}
.pc-duel-show{display:flex;gap:14px;justify-content:center;align-items:center;font-size:38px;line-height:1}.pc-duel-show i{font-size:14px;font-style:normal;font-weight:900;opacity:.6}
.pc-score{border-color:#c9a23a}.pc-score table{width:100%;border-collapse:collapse;font-size:13px}.pc-score th,.pc-score td{padding:3px 4px;text-align:center}.pc-score td:first-child,.pc-score th:first-child{text-align:left}
.pc-score u{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;border:1px solid #0007;text-decoration:none}
.pc-choice{border-color:#0b3d91;display:grid;gap:6px}
.pc-link{background:none;border:0;padding:4px 0;color:#0b3d91;font-weight:800;font-size:13px;text-decoration:underline;cursor:pointer;justify-self:start}
.pc-note.war{background:#ffe9e9;color:#8f1016}
.pc-opt.hidden,.pc-duel.hidden,.pc-score.hidden,.pc-choice.hidden{display:none}
html[data-theme="dark"] .pc-link{color:#9fc0ff}
/* 0.3.32 (V2): Mesa 3D - las fichas de tu mano con tamano fijo (en iPhone a veces salian sin ancho y se "perdian") y mas borrosas al estar borracho */
/* 0.3.34 (dueno): cada ficha de tu mano tiene su CASILLA fija (una rejilla; hay tantas casillas como fichas te quedan). Nada se encoge, se monta ni sube:
   la que puedes jugar se marca solo con el borde dorado. Borracho: borrosas tambien la que llevas en la mano. */
.d3 .d3-myrack{display:grid;grid-auto-flow:column;grid-auto-columns:var(--d3w);justify-content:center;align-items:end;gap:3px;padding-left:4px;padding-right:4px;--d3w:min(40px,calc((100% - 18px)/7))}
.d3 .d3-myrack .d3-my{grid-row:1;width:100%;min-width:0;max-width:none;height:auto;aspect-ratio:1/2;line-height:0;transform:none;translate:none;rotate:none;animation:none}
.d3 .d3-myrack .d3-my svg{width:100%;height:100%}
.d3 .d3-myrack .d3-my.ok,.d3 .d3-myrack .d3-my.picked{transform:none}
.d3 .d3-myrack .d3-my.picked svg{filter:drop-shadow(0 0 8px #ffd54a) drop-shadow(0 3px 0 #b9ae92)}
.d3 .d3-myrack.blur .d3-my svg,.d3.drunk .d3-held svg{filter:blur(11px)}
/* 0.3.50 (V2): pantalla completa tambien en los juegos con archivo propio (#fsBar) + fondo distinto cuando se enciende el segundo modo de un juego */
#miniGamesScreen[data-fs] .mini-games-header,#miniGamesScreen[data-fs] #arcScene{display:none}
#miniGamesScreen[data-fs] #miniGameStage .dos-head{display:none}
#miniGamesScreen[data-fs] #miniGameStage .mini-game:not(.fs){border:0;border-radius:0;background:transparent;box-shadow:none;padding-top:0}
#miniGamesScreen[data-fs] #miniGameStage .mini-game:not(.fs)::before{display:none}
/* 0.3.61: final del Sudoku. La tarjeta de «completado» espera invisible (#modal.win-wait) y luego aparece; animaciones del final (clases wfx-*, las pone winAnim() de js/shop.js) */
#modal{transition:opacity .35s ease}
#modal.win-wait{opacity:0!important;pointer-events:none!important;transition:none}
.cell.wfx-flag{animation:wfxFlag 3.5s ease both!important;animation-delay:var(--wd,0ms)!important;z-index:2}
.cell.wfx-gold{animation:wfxGold 1.1s ease 3 both!important;animation-delay:var(--wd,0ms)!important}
.cell.wfx-fall{animation:wfxFall 3.5s cubic-bezier(.5,0,.8,.4) both!important;animation-delay:var(--wd,0ms)!important;z-index:4}
@keyframes wfxFlag{0%{box-shadow:inset 0 0 0 0 var(--wc);transform:none}9%{transform:scale(1.18) rotate(4deg)}16%,84%{box-shadow:inset 0 0 0 60px var(--wc);color:var(--wt);-webkit-text-stroke:0;text-shadow:none;transform:none}100%{box-shadow:inset 0 0 0 0 var(--wc);transform:none}}
@keyframes wfxGold{0%,100%{box-shadow:inset 0 0 0 0 #ffd54a00}45%{box-shadow:inset 0 0 0 60px #ffd54acc,0 0 14px #ffd54a}}
@keyframes wfxFall{0%{transform:none}6%{transform:translateY(-8px) rotate(calc(var(--wr)*.2))}34%,72%{transform:translateY(var(--wy,600px)) rotate(var(--wr,30deg))}73%{transform:translateY(0) scale(0)}88%{transform:scale(1.15)}100%{transform:none}}
@media(prefers-reduced-motion:reduce){.cell.wfx-flag,.cell.wfx-gold,.cell.wfx-fall{animation:none!important}}
.shop-stage.pv-win{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;padding:0;border:2px solid #10213b;background:#10213b}
.pv-win .cell{font-size:24px;border:0}
.shop-prev.g-sudokuwin{background:#e9f0fb;box-shadow:inset 0 0 0 2px #d5dfee}.shop-prev.g-sudokuwin i{width:46px;height:46px}

/* 0.3.55: skins del Sudoku (los estilos de cada skin los genera js/shop.js; aqui va solo la vista previa de la tienda) */
.shop-stage.pv-sudoku{aspect-ratio:auto;display:grid;gap:10px;padding:12px;background:#eef4ff;overflow:visible}
.pv-sbox{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;width:62%;aspect-ratio:1;margin:auto;border:2px solid #10213b;background:#10213b;border-radius:6px;overflow:hidden}
.pv-sbox .cell{font-size:30px;border:0;aspect-ratio:1}
.pv-sbox .notes{font-size:10px}
.pv-spad{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.pv-spad .num-btn{display:grid;place-items:center;align-content:center;min-height:46px;line-height:1.05}
.pv-stools{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.pv-stools .tool{display:grid;place-items:center;min-height:38px;font-size:12.500px}
.pv-snote{font-size:11px;font-style:normal;color:#6b7890}
.shop-prev.g-sudoku{background:#e9f0fb;box-shadow:inset 0 0 0 2px #d5dfee}.shop-prev.g-sudoku i+i{margin-left:-10px}

/* 0.3.54: tienda separada por juego (.shop-cats, .shop-h) y vista previa de cada objeto (.shop-pv, .shop-stage) */
.shop-cats{display:flex;gap:7px;overflow-x:auto;padding:2px 2px 8px;margin:0 -2px;scrollbar-width:none}.shop-cats::-webkit-scrollbar{display:none}
.shop-cat{flex:none;min-height:38px;padding:7px 14px;border:0;border-radius:999px;background:#eef3fb;color:#203653;font:inherit;font-size:13.500px;font-weight:900;cursor:pointer;box-shadow:inset 0 0 0 2px #d5dfee;touch-action:manipulation}
.shop-cat.on{background:linear-gradient(180deg,#2a7de1,#0b4fb3);color:#fff;box-shadow:0 3px 0 #083a85}
.shop-h{margin:14px 2px 8px;font-size:16px;color:#10213b;display:flex;align-items:baseline;gap:8px}.shop-h small{font-size:12px;color:#6b7890;font-weight:800}
#shopScreen button.shop-prev{position:relative;border:0;font:inherit;cursor:pointer;touch-action:manipulation}
#shopScreen button.shop-prev em{position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);padding:1px 7px;border-radius:999px;background:#10213b;color:#fff;font-size:9.500px;font-style:normal;font-weight:900;white-space:nowrap}
.shop-pv{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;background:#0b1830b3}
.shop-pvcard{width:min(340px,100%);padding:16px;border-radius:22px;background:#fff;box-shadow:0 18px 40px #0008;display:grid;gap:8px;text-align:center}
.shop-pvcard small{color:#d62027;font-size:10.500px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.shop-pvcard b{font-size:19px;color:#10213b}.shop-pvcard p{margin:0;color:#5a6880;font-size:13px;line-height:1.4}
.shop-stage{position:relative;width:100%;aspect-ratio:1;border-radius:16px;overflow:hidden;box-shadow:inset 0 0 0 2px #d5dfee}
.shop-stage.pv-board{display:grid;grid-template-columns:repeat(4,1fr)}.pv-board span{display:grid;place-items:center}.pv-board .l{background:#f0d9b5}.pv-board .d{background:#7a4a22}
.pv-board i,.pv-grid i{width:82%;height:82%;background-size:100% 100%;filter:drop-shadow(0 3px 3px #0007)}
.shop-stage.pv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4%;padding:5%;background:linear-gradient(145deg,#1f86e0,#0b3d91)}.pv-grid span{display:grid;place-items:center;border-radius:50%;background:#0a2f73;box-shadow:inset 0 3px 5px #0008}.pv-grid i{width:100%;height:100%}
.shop-stage.pv-dice{display:flex;align-items:center;justify-content:center;gap:8%;background:#f4f1e6}.pv-dice i{width:34%;aspect-ratio:1;background-size:100% 100%;filter:drop-shadow(0 6px 6px #0007)}.pv-dice i:first-child{transform:rotate(-12deg)}.pv-dice i+i{transform:rotate(9deg) translateY(12%)}
.shop-stage.pv-img{display:grid;place-items:center;background:#e9f0fb}.pv-img i{width:78%;height:78%;background-size:contain;background-repeat:no-repeat;background-position:center;filter:drop-shadow(0 6px 8px #0005)}
.shop-stage.pv-kill{background:#f7f3e6}
.shop-stage.pv-kill .shop-nest{position:absolute;left:5%;top:7%;width:36%;height:36%;border-radius:50%;box-shadow:inset 0 0 0 10px #e53935;background:#fff}
.shop-stage .pc-piece{width:9%;height:9%;margin:-4.5% 0 0 -4.5%;transition:none}
.shop-stage .pc-piece.kout{opacity:0}.shop-stage .pc-piece.kback{animation:pcKBack .42s cubic-bezier(.2,1.6,.4,1)}.shop-stage.kshake{animation:pcKShake .16s linear}
.shop-stage .pc-kghost{width:9%;height:9%;margin:-4.5% 0 0 -4.5%}
html[data-theme="dark"] .shop-pvcard{background:#16233a}html[data-theme="dark"] .shop-pvcard b,html[data-theme="dark"] .shop-h{color:#e6edf7}html[data-theme="dark"] .shop-pvcard p{color:#9fb0c8}html[data-theme="dark"] .shop-cat{background:#16233a;color:#cfdcf0;box-shadow:inset 0 0 0 2px #2b3a52}
/* 0.3.54: los dominos verdes tambien en la mesa clasica del domino */
#miniGameStage .tl-green .dmt svg rect,#miniGameStage .tl-green .d-sidebtn svg rect{fill:#1f9d55;stroke:#0e5a2e}
#miniGameStage .tl-green .dmt svg g,#miniGameStage .tl-green .d-sidebtn svg g{fill:#fff}
#miniGameStage .tl-green .dmt svg line,#miniGameStage .tl-green .d-sidebtn svg line{stroke:#d7ffe6}
#miniGameStage .tl-green .dtile{border-color:#0e5a2e;background:linear-gradient(#2fb86a,#1f9d55)}#miniGameStage .tl-green .dtile u{background:#d7ffe6}#miniGameStage .tl-green .dh i.on{background:#fff}
#miniGameStage .tl-green .dm-backs i{border-color:#0e5a2e;background:repeating-linear-gradient(45deg,#2fb86a 0 3px,#1f9d55 3px 6px)}

/* 0.3.53: otras dos animaciones de captura de Parchimi: «Batazo» (.pc-kbat, .pc-kpow) y «Bomba sorry» (.pc-kbomb, .pc-kboom, .pc-kheart) */
.pc-kbat,.pc-kpow,.pc-kbomb,.pc-kboom,.pc-kheart{position:absolute;pointer-events:none;z-index:10}
.pc-kbat{width:19%;height:5.4%;margin:-2.7% 0 0 0;transform-origin:0 50%;transform:rotate(-112deg);opacity:0;border-radius:30% 50% 50% 30%/50%;clip-path:polygon(0 30%,6% 30%,6% 38%,45% 30%,80% 0,100% 12%,100% 88%,80% 100%,45% 70%,6% 62%,6% 70%,0 70%);background:linear-gradient(#e0a560,#b87634 55%,#8a5220);filter:drop-shadow(0 2px 2px #0009);transition:opacity .15s,transform .22s ease-out}
.pc-kbat.in{opacity:1;transform:rotate(-140deg)}
.pc-kbat.swing{transform:rotate(6deg);transition:transform .12s cubic-bezier(.5,0,1,.6)}
.pc-kbat.out{opacity:0;transform:rotate(40deg);transition:opacity .3s,transform .3s ease-out}
.pc-kpow{width:16%;height:16%;margin:-8% 0 0 -8%;background:#ffd54a;clip-path:polygon(50% 0,60% 28%,88% 12%,74% 40%,100% 50%,74% 60%,88% 88%,60% 72%,50% 100%,40% 72%,12% 88%,26% 60%,0 50%,26% 40%,12% 12%,40% 28%);transform:scale(.2);opacity:1;transition:transform .16s ease-out,opacity .25s .15s}
.pc-kpow.on{transform:scale(1.25) rotate(18deg);opacity:0}
.pc-kbomb{width:6.4%;height:6.4%;margin:-3.2% 0 0 -3.2%;border-radius:50%;background:radial-gradient(circle at 32% 30%,#777 0 9%,#1b1b22 34%);box-shadow:0 0 0 1px #000,0 3px 5px #0009;opacity:0;transition:top .28s cubic-bezier(.4,1.5,.5,1),opacity .12s}
.pc-kbomb.in{opacity:1}
.pc-kbomb::before{content:"";position:absolute;left:58%;top:-26%;width:14%;height:40%;background:#8a6a3a;border-radius:2px;transform:rotate(28deg)}
.pc-kbomb::after{content:"";position:absolute;left:62%;top:-52%;width:44%;height:44%;border-radius:50%;background:radial-gradient(circle,#fff 0 25%,#ffd54a 26% 55%,#ff7a1a 56% 75%,#0000 77%);animation:pcKSpark .18s linear infinite alternate}
.pc-kbomb.tick{animation:pcKTick .22s ease-out}
.pc-kboom{width:8%;height:8%;margin:-4% 0 0 -4%;border-radius:50%;background:radial-gradient(circle,#fff 0 30%,#ffd54a 31% 55%,#ff7a1a 56% 78%,#0000 80%);transform:scale(.3);opacity:1;transition:transform .45s cubic-bezier(.1,.8,.3,1),opacity .45s ease-in}
.pc-kboom.on{transform:scale(6);opacity:0}
.pc-kheart{width:36%;height:33%;margin:-16.5% 0 0 -18%;transform:scale(.05);filter:drop-shadow(0 4px 6px #0009);transition:transform .38s cubic-bezier(.2,1.7,.4,1)}
.pc-kheart svg{display:block;width:100%;height:100%;overflow:visible}
.pc-kheart.on{transform:scale(1)}
.pc-kheart.go{transform:scale(.12);transition:transform .48s ease-in,left .48s cubic-bezier(.6,0,.4,1),top .48s cubic-bezier(.6,0,.4,1)}
@keyframes pcKSpark{0%{transform:scale(.7) rotate(0)}100%{transform:scale(1.25) rotate(40deg)}}
@keyframes pcKTick{0%{transform:scale(1)}40%{transform:scale(1.3);box-shadow:0 0 0 1px #000,0 0 10px 3px #ff3b3b}100%{transform:scale(1)}}
/* 0.3.52: animacion de captura de Parchimi (objeto «Balacera» de la tienda). La pinta killFx() en js/parchis.js */
.pc-board .pc-piece.kout{opacity:0;transition:none}
.pc-board .pc-piece.kback{animation:pcKBack .42s cubic-bezier(.2,1.6,.4,1)}
.pc-kghost,.pc-kfrag{position:absolute;width:5.6%;height:5.6%;margin:-2.8% 0 0 -2.8%;pointer-events:none;z-index:9}
.pc-kghost{border-radius:50%;border:2px solid #fff;background:radial-gradient(circle at 34% 30%,#ffffffb0,#fff0 46%),var(--pc-c);box-shadow:0 0 0 1px #0009,0 6px 10px #0008;transition:left .45s cubic-bezier(.2,.8,.3,1),top .45s cubic-bezier(.2,.8,.3,1),transform .45s cubic-bezier(.2,1.5,.4,1)}
.pc-kghost.up{transform:scale(2.6) rotate(-14deg)}
.pc-kghost.hit{animation:pcKHit .17s linear}
.pc-kshot{position:absolute;width:22%;height:22%;margin:-11% 0 0 -11%;border-radius:50%;background:radial-gradient(circle,#000 0 45%,#3a1a10 46% 70%,#0000 72%);box-shadow:0 0 0 1px #0006;animation:pcKShot .22s ease-out}
.pc-kshot::after{content:"";position:absolute;inset:-90%;border-radius:50%;background:radial-gradient(circle,#fff 0 18%,#ffd54a 19% 38%,#ff7a1a66 39% 55%,#0000 57%);opacity:0;animation:pcKFlash .2s ease-out}
.pc-kfrag{background:var(--pc-c);filter:drop-shadow(0 0 1px #fff) drop-shadow(0 2px 2px #0008);transition:left .36s cubic-bezier(.1,.8,.3,1),top .36s cubic-bezier(.1,.8,.3,1),transform .36s ease-out}
.pc-kfrag.back{transition:left .4s cubic-bezier(.6,0,.4,1),top .4s cubic-bezier(.6,0,.4,1),transform .4s ease-in}
.pc-kfrag.f0{clip-path:polygon(50% 50%,50% 0,100% 12%)}.pc-kfrag.f1{clip-path:polygon(50% 50%,100% 12%,100% 62%)}
.pc-kfrag.f2{clip-path:polygon(50% 50%,100% 62%,74% 100%)}.pc-kfrag.f3{clip-path:polygon(50% 50%,74% 100%,30% 100%)}
.pc-kfrag.f4{clip-path:polygon(50% 50%,30% 100%,0 70%)}.pc-kfrag.f5{clip-path:polygon(50% 50%,0 70%,0 26%)}
.pc-kfrag.f6{clip-path:polygon(50% 50%,0 26%,22% 0)}.pc-kfrag.f7{clip-path:polygon(50% 50%,22% 0,50% 0)}
.pc-kfrag{width:11%;height:11%;margin:-5.5% 0 0 -5.5%}
/* 0.3.70: animaciones de captura «Corte» (killslash) y «Espadas» (killswords) — js/parchis.js, killRun */
.pc-khalf,.pc-kquad{position:absolute;width:14.5%;height:14.5%;margin:-7.25% 0 0 -7.25%;border-radius:50%;background:radial-gradient(circle at 34% 30%,#ffffffb0,#fff0 46%),var(--pc-c);pointer-events:none;z-index:9;filter:drop-shadow(0 0 1px #fff) drop-shadow(0 2px 2px #0008);transition:left .4s cubic-bezier(.1,.8,.3,1),top .4s cubic-bezier(.1,.8,.3,1),transform .4s ease-out}
.pc-khalf.back,.pc-kquad.back{transition:left .4s cubic-bezier(.6,0,.4,1),top .4s cubic-bezier(.6,0,.4,1),transform .4s ease-in}
.pc-khalf.l{clip-path:inset(0 51% 0 0)}.pc-khalf.r{clip-path:inset(0 0 0 51%)}
.pc-kquad.q0{clip-path:polygon(3% 0,97% 0,50% 47%)}.pc-kquad.q1{clip-path:polygon(100% 3%,100% 97%,53% 50%)}.pc-kquad.q2{clip-path:polygon(97% 100%,3% 100%,50% 53%)}.pc-kquad.q3{clip-path:polygon(0 97%,0 3%,47% 50%)}
.pc-kghost.pc-katk{z-index:10}.pc-kghost.pc-katk.dive{transition:top .14s cubic-bezier(.6,0,1,.6),opacity .3s}.pc-kghost.pc-katk.out{opacity:0}
.pc-kslash,.pc-kx,.pc-ksword{position:absolute;pointer-events:none;z-index:11}
.pc-kslash{width:1.2%;height:28%;margin:-14% 0 0 -.6%;background:linear-gradient(#fff0,#fff 25%,#fff 75%,#fff0);box-shadow:0 0 8px #fff;transform:scaleY(0);transform-origin:50% 0;transition:transform .12s ease-out,opacity .28s .12s}
.pc-kslash.on{transform:scaleY(1);opacity:0}
.pc-kx{width:22%;height:22%;margin:-11% 0 0 -11%;background:linear-gradient(45deg,#fff0 47%,#fff 47% 53%,#fff0 53%),linear-gradient(-45deg,#fff0 47%,#fff 47% 53%,#fff0 53%);transform:scale(.4);transition:transform .15s ease-out,opacity .3s .12s}
.pc-kx.on{transform:scale(1.2);opacity:0}
.pc-ksword{width:5%;height:26%;margin:-13% 0 0 -2.5%;opacity:0;background:linear-gradient(#f4f7fb 0 66%,#c9a23a 66% 72%,#6b3d12 72% 100%);clip-path:polygon(50% 0,74% 8%,74% 66%,100% 66%,100% 72%,66% 72%,66% 100%,34% 100%,34% 72%,0 72%,0 66%,26% 66%,26% 8%);filter:drop-shadow(0 2px 2px #0009);transition:opacity .15s,transform .14s cubic-bezier(.5,0,1,.6)}
.pc-ksword.a{transform:rotate(45deg) translateY(-130%)}.pc-ksword.b{transform:rotate(-45deg) translateY(-130%)}
.pc-ksword.in{opacity:1}.pc-ksword.a.cut{transform:rotate(45deg) translateY(0)}.pc-ksword.b.cut{transform:rotate(-45deg) translateY(0)}.pc-ksword.out{opacity:0;transition:opacity .3s}
.pc-board.kshake{animation:pcKShake .16s linear}
@keyframes pcKHit{0%{transform:scale(2.6) rotate(-14deg)}35%{transform:scale(2.25) rotate(9deg) translate(7%,-5%)}100%{transform:scale(2.6) rotate(-14deg)}}
@keyframes pcKShot{0%{transform:scale(2.4)}100%{transform:scale(1)}}
@keyframes pcKFlash{0%{opacity:1;transform:scale(.4)}100%{opacity:0;transform:scale(1.25)}}
@keyframes pcKShake{0%,100%{transform:translate(0,0)}25%{transform:translate(-2px,1px)}75%{transform:translate(2px,-1px)}}
@keyframes pcKBack{0%{transform:scale(.2)}60%{transform:scale(1.35)}100%{transform:scale(1)}}
.shop-prev.g-parchiskill i{background-size:contain;background-repeat:no-repeat;background-position:center}
/* 0.3.51: la fila de arriba mide lo mismo que el juego de debajo (650 px como maximo, centrada). Lleva #fsBar delante para ganarle a la regla general de .fs-top */
#fsBar.fs-bar{width:min(650px,100%);max-width:none;margin:0 auto 8px;padding-left:12px;padding-right:12px;box-sizing:border-box}
.fs-bar.hidden{display:none}
.fs-top{position:sticky}
#miniGamesScreen[data-alt]{transition:background .35s}
#miniGamesScreen[data-alt="stop"],#miniGamesScreen[data-alt="stop"] .mini-games-shell{background:repeating-linear-gradient(0deg,#0000 0 27px,#cfe0f7 27px 28px),#fff8e1!important}
#miniGamesScreen[data-alt="domino"],#miniGamesScreen[data-alt="domino"] .mini-games-shell{background:linear-gradient(#7fcbff 0,#d6efff 34%,#57b157 34.300%,#2f8a35 100%)!important}
#miniGamesScreen[data-alt="war"],#miniGamesScreen[data-alt="war"] .mini-games-shell{background:radial-gradient(ellipse at 50% 0,#7a1a22,#2a0a0e 75%)!important}
#miniGamesScreen[data-alt="domino"] .games-back,#miniGamesScreen[data-alt="war"] .games-back{color:#fff}
#miniGamesScreen[data-alt="war"] #miniGameStage .pc-menu{color:#ffe9e9}
#miniGamesScreen[data-alt="war"] #miniGameStage .pc-hero span,#miniGamesScreen[data-alt="war"] #miniGameStage .pc-opt>b,#miniGamesScreen[data-alt="war"] #miniGameStage .pc-hint{color:#ffd9d9}
#miniGamesScreen[data-alt="war"] .fs-top,#miniGamesScreen[data-alt="domino"] .fs-top,#miniGamesScreen[data-alt="stop"] .fs-top{background:none}
/* 0.3.49 (V2): PARTIDA A PANTALLA COMPLETA (js/other-games.js, fsTop). Sin barra del arcade ni titulo: una fila fija con regresar · aviso · menu. */
#miniGamesScreen:has(.mini-game.fs) .mini-games-header{display:none}
#miniGamesScreen:has(.mini-game.fs) #arcScene{display:none}
#miniGameStage .mini-game.fs{width:100%;max-width:760px;margin:0 auto;padding:0 8px 16px;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
#miniGameStage .mini-game.fs::before{display:none}
#miniGameStage .mini-game.fs>.mini-game-head{display:none}
#miniGameStage .mini-game.fs .arc-msg{display:none}
.fs-top{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;height:56px;box-sizing:border-box;margin:0 -8px 8px;padding:6px 8px;background:linear-gradient(#f4f7fc 70%,#f4f7fc00)}
/* 0.3.64 (dueño, iPhone): la pantalla del arcade YA baja lo que mide la barra del teléfono (padding-top de .mini-games-screen); esta fila lo sumaba
   otra vez (con una altura fija de 56 px) y su contenido se salía por debajo, encima del juego. */
.fs-btn{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:14px;background:#fff;color:#0b3d91;box-shadow:0 3px 0 #d5dfee,0 6px 12px #0b3d9114;cursor:pointer;touch-action:manipulation}
.fs-btn svg{width:22px;height:22px}.fs-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #d5dfee}.fs-btn.on{background:#0b3d91;color:#fff}
.fs-msg{display:grid;align-content:center;justify-items:center;height:44px;min-width:0;padding:0 12px;border-radius:14px;background:linear-gradient(135deg,#0b3d91,#1761b2);color:#fff;text-align:center;overflow:hidden;box-shadow:0 3px 0 #082f73}
.fs-msg small{font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;opacity:.75;line-height:1.1;white-space:nowrap}
.fs-msg b{max-width:100%;font-size:12.500px;font-weight:800;line-height:1.200;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fs-menu{position:absolute;right:8px;top:54px;z-index:21;display:grid;gap:4px;min-width:200px;padding:6px;border-radius:16px;background:#fff;box-shadow:0 14px 34px #07172b55,inset 0 0 0 2px #dce4ef}
.fs-menu.hidden{display:none}
.fs-menu button{min-height:44px;padding:8px 14px;border:0;border-radius:11px;background:#f4f7fc;color:#10213b;font:inherit;font-size:14px;font-weight:800;text-align:left;cursor:pointer;touch-action:manipulation}
.fs-menu button:active{background:#dbe8fb}.fs-menu button:disabled{opacity:.45}
html[data-theme="dark"] .fs-top{background:linear-gradient(#0f1829 70%,#0f182900)}
html[data-theme="dark"] .fs-btn{background:#16233a;color:#9fc0ff;box-shadow:0 3px 0 #0a1324}
html[data-theme="dark"] .fs-menu{background:#16233a;box-shadow:0 14px 34px #000a,inset 0 0 0 2px #2b3a52}html[data-theme="dark"] .fs-menu button{background:#1b2a44;color:#e6edf7}
/* 0.3.47: Fichas deslizantes - la cabecera no cambia entre «piedra, papel o tijera» y la partida (la mesa subia 26 px una vez) */
#miniGameStage .mini-game:has(.arc-slide) .mini-game-head small{display:none}
/* 0.3.47 (V2): Mesa 3D - el aspecto lo pone quien saca: fondo (sc-*), dominos (tl-*) y sillas (ch-*) + animacion de cambio (lookfx) */
.d3.tl-green .d3-t svg rect,.d3.tl-green .d3-held svg rect{fill:#1f9d55;stroke:#0e5a2e}
.d3.tl-green .d3-my svg rect{fill:#1f9d55}
.d3.tl-green .d3-my:not(.ok) svg rect{stroke:#0e5a2e}
.d3.tl-green .d3-t svg g,.d3.tl-green .d3-my svg g,.d3.tl-green .d3-held svg g{fill:#fff}
.d3.tl-green .d3-t svg line,.d3.tl-green .d3-my svg line,.d3.tl-green .d3-held svg line{stroke:#d7ffe6}
.d3.tl-green .d3-rack i{background:#1f9d55}
.d3.tl-green .d3-rack.t i{box-shadow:0 -9px 0 #2fb86a,0 -9px 0 1px #0e5a2e}
.d3.tl-green .d3-rack.l i{box-shadow:5px -7px 0 #2fb86a}.d3.tl-green .d3-rack.r i{box-shadow:-5px -7px 0 #2fb86a}
.d3.tl-green .d3-t{filter:drop-shadow(0 2.500px 0 #0e5a2e) drop-shadow(0 5px 4px #0008)}
.d3.ch-green .d3-chair path:first-child{fill:#2fb86a;stroke:#167a40}
.d3.ch-green .d3-chair rect{fill:#3fd27c;stroke:#167a40}
.d3.ch-green .d3-chair path{stroke:#167a40}
.d3.lookfx::after{content:"";position:absolute;inset:0;z-index:12;pointer-events:none;background:radial-gradient(circle at 50% 55%,#fff 0,#ffe27a 30%,#ffffff00 70%);animation:d3LookFx 1.100s ease-out forwards}
.d3.lookfx .d3-stage{animation:d3LookPop .7s cubic-bezier(.2,1.4,.4,1)}
.d3.lookfx .d3-bg,.d3.lookfx .d3-fig{animation:d3LookIn .8s ease-out}
@keyframes d3LookFx{0%{opacity:0;transform:scale(.2)}25%{opacity:1}100%{opacity:0;transform:scale(2.200)}}
@keyframes d3LookPop{0%{transform:scale(.92) rotate(-2deg)}}
@keyframes d3LookIn{0%{opacity:.2;filter:saturate(0)}}
@media(prefers-reduced-motion:reduce){.d3.lookfx::after,.d3.lookfx .d3-stage,.d3.lookfx .d3-bg,.d3.lookfx .d3-fig{animation:none}.d3.lookfx::after{display:none}}
.shop-prev.g-d3scene,.shop-prev.g-d3tiles,.shop-prev.g-d3chairs{background:#e9f0fb;box-shadow:inset 0 0 0 2px #d5dfee}
.shop-prev.g-d3scene i,.shop-prev.g-d3tiles i,.shop-prev.g-d3chairs i{width:46px;height:46px}
/* 0.3.46 (V2): Mesa 3D - los personajes tienen piernas y piesitos; el que esta borracho mueve los pies */
.d3-legs path{transform-box:fill-box}
.d3-fig.drunk .d3-legs path:nth-child(3){animation:d3Foot .5s ease-in-out infinite alternate}
.d3-fig.drunk .d3-legs path:nth-child(4){animation:d3Foot .5s ease-in-out -.25s infinite alternate}
@keyframes d3Foot{to{transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.d3-fig.drunk .d3-legs path{animation:none}}
/* 0.3.45 (V2): EL TABLERO YA NO SALTA. La cabecera de cada juego tenia alto variable: el mensaje de turno ocupaba 1 o 2 lineas y los botones
   bajaban a otra fila segun el texto, y eso empujaba el tablero arriba y abajo en cada jugada (parecia que vibraba).
   Ahora: fila 1 = titulo + botones (nunca se parten), fila 2 = mensaje con sitio fijo para 2 lineas. */
#miniGameStage .mini-game-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px;margin-bottom:10px}
#miniGameStage .mini-game-head>div:first-child{display:contents}
#miniGameStage .mini-game-head h2{grid-column:1;grid-row:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#miniGameStage .mini-game-head .mini-game-actions{grid-column:2;grid-row:1;flex-wrap:nowrap;max-width:none;min-width:0}
#miniGameStage .mini-game-head .mini-game-actions>*{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#miniGameStage .mini-game-head .turn-indicator{max-width:92px}
#miniGameStage .mini-game-head small{grid-column:1/-1;grid-row:2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;height:2.600em;margin:0;line-height:1.300}
#miniGameStage .arc-msg{display:grid;align-content:center;box-sizing:border-box;height:calc(2.600em + 18px);overflow:hidden;line-height:1.300;border-radius:18px}
/* 0.3.44 (V2): tienda - fondo de la vitrina segun el juego (4 en linea azul, Parchimi claro) */
.shop-prev.g-connect4{background:linear-gradient(145deg,#1f86e0,#0b3d91)}
.shop-prev.g-parchis{background:#f4f1e6;box-shadow:inset 0 0 0 2px #d9d2bd}.shop-prev.g-parchis i+i{margin-left:4px}
/* 0.3.43 (V2): Parchimi - muralla: con pareja, brillan solo las fichas que la abren; las otras tuyas quedan apagadas (y al tocarlas sale el aviso) */
.pc-board.wallmode .pc-piece.can{box-shadow:0 0 0 .18em #ffd54a,0 0 .7em .25em #ffd54a;z-index:5}
.pc-board.wallmode .pc-piece.nope{filter:brightness(.72) saturate(.7);cursor:help}
/* 0.3.42 (V2): fila «Continuar» con las partidas guardadas (js/other-games.js) */
.park-card{position:relative;flex:none}
.park-card .recent-card small{display:block;margin-top:1px;font-size:9.500px;font-weight:700;opacity:.9;line-height:1.2}
.park-card .recent-card{box-shadow:0 0 0 2.500px #ffd54a,0 6px 14px #0b3d9126}
.park-x{position:absolute;right:-6px;top:-6px;z-index:2;display:grid;place-items:center;width:24px;height:24px;padding:0;border:2px solid #fff;border-radius:50%;background:#10213b;color:#fff;font-size:11px;font-weight:900;line-height:1;cursor:pointer;touch-action:manipulation}
.games-recent.parked{padding-top:8px}
/* 0.3.41 (V2): arreglos tras la prueba del dueno - Parchimi (circulo del turno), Perfil (Logros se toca), Domino (fichas mas chicas, mesa con aire) */
.pc-nestc.turn{animation:pcNestTurn .8s ease-in-out infinite alternate}
@keyframes pcNestTurn{from{stroke-width:.85;filter:drop-shadow(0 0 0 currentColor)}to{stroke-width:1.700;filter:drop-shadow(0 0 1.200px currentColor) drop-shadow(0 0 .600px #fff)}}
@media(prefers-reduced-motion:reduce){.pc-nestc.turn{animation:none;stroke-width:1.500}}
/* -- Domino clasico: fichas de la mano en vertical y mas chicas (las 7 caben en una fila), boton Ordenar, mesa con aire y fichas levemente torcidas -- */
#miniGameStage .arc-domino .d-hand{flex-wrap:nowrap;gap:3px}
#miniGameStage .arc-domino .d-hand .dbtn{flex:0 1 44px;min-width:0;padding:2px}
#miniGameStage .arc-domino .d-hand .dtile{flex-direction:column;width:100%;height:auto;aspect-ratio:1/1.900}
#miniGameStage .arc-domino .d-hand .dtile u{width:70%;height:2px}
#miniGameStage .arc-domino .d-hand .dh{flex:1 1 0;width:100%;height:auto;min-height:0;padding:3px}
#miniGameStage .arc-domino .d-hand .dh i{width:5px;height:5px}
.dm-sortrow{display:flex;justify-content:center;margin:0 0 6px}
.dm-sortbtn,.d3-sortbtn{padding:5px 12px;border:0;border-radius:999px;background:#eef3fb;color:#203653;font:inherit;font-size:11.500px;font-weight:900;cursor:pointer;box-shadow:0 2px 0 #d5dfee;touch-action:manipulation}
.dm-sortbtn:active,.d3-sortbtn:active{transform:translateY(2px);box-shadow:none}
#miniGameStage .dm-board .dmt{transform:scale(.93) rotate(var(--tilt,0deg))}
/* -- Mesa 3D: fichas del atril mas chicas, boton Ordenar -- */
.d3 .d3-sortbtn{position:absolute;right:74px;bottom:104px;z-index:6;background:#ffffffe6}
.d3 .d3-myrack .d3-my{touch-action:none;cursor:grab}
.st-cards .st-go{cursor:pointer;box-shadow:inset 0 0 0 2px #0b3d91,0 3px 0 #9dbcea}.st-cards .st-go small{color:#0b3d91;font-weight:900}.st-cards .st-go:active{transform:translateY(2px)}
/* 0.3.38 (V2): monedas y TIENDA DE SKINS (js/shop.js) + quinta pestana en la barra de abajo */
body.tab-page #shopScreen{align-items:stretch;padding:0 0 calc(62px + var(--sab));background:radial-gradient(ellipse at 50% 0,#fff 0,#f4f7fc 55%,#eaf0f8 100%);-webkit-backdrop-filter:none;backdrop-filter:none}
body.tab-page #shopScreen .tut-card{width:min(760px,100%);height:100%;max-height:none;border-radius:0;background:transparent;box-shadow:none}
body.tab-page #shopScreen .tut-card header{padding-top:max(18px,calc(var(--sat) + 10px))}
body.tab-page #shopScreen .tut-x{display:none}
body.tab-page #shopScreen .tut-body{padding-bottom:22px}
#tabBar .tb-in button b{font-size:10.500px}
.coin{display:inline-block;width:1.2em;height:1.2em;vertical-align:-.25em;flex:none}
.shop-bank{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:20px;background:linear-gradient(135deg,#0b3d91,#1761b2);color:#fff;box-shadow:0 8px 18px #0b3d9133}
.shop-bank .coin{width:44px;height:44px;filter:drop-shadow(0 3px 4px #0005)}
.shop-bank b{display:block;font-size:30px;line-height:1;font-variant-numeric:tabular-nums}.shop-bank small{font-size:12px;font-weight:800;opacity:.85;letter-spacing:.1em;text-transform:uppercase}
.shop-how{margin:12px 2px;color:#42536e;font-size:13.500px;line-height:1.45}.shop-how.small{font-size:12px;color:#6b7890}
.shop-list{display:grid;gap:10px}
.shop-item{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px;border-radius:18px;background:#fff;box-shadow:inset 0 0 0 2px #dce4ef,0 3px 0 #d5dfee}
.shop-item.on{box-shadow:inset 0 0 0 2.500px #1c8a4a,0 3px 0 #9fd8b6;background:#f3fbf6}
.shop-prev{display:flex;padding:6px;border-radius:14px;background:repeating-conic-gradient(#7a4a22 0 25%,#f0d9b5 0 50%) 0 0/28px 28px}
.shop-prev i{width:34px;height:34px;background-size:100% 100%;filter:drop-shadow(0 2px 2px #0006)}.shop-prev i+i{margin-left:-6px}
.shop-txt{min-width:0}.shop-txt small{display:block;color:#d62027;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.shop-txt b{display:block;font-size:15.500px;color:#10213b}.shop-txt p{margin:2px 0 0;color:#5a6880;font-size:12px;line-height:1.35}
.shop-btn{display:inline-flex;align-items:center;gap:5px;min-height:40px;padding:8px 14px;border:0;border-radius:13px;background:linear-gradient(180deg,#2a7de1,#0b4fb3);color:#fff;font:inherit;font-size:14px;font-weight:900;cursor:pointer;box-shadow:0 4px 0 #083a85;touch-action:manipulation}
.shop-btn.buy{background:linear-gradient(180deg,#ffe07a,#f0b000);color:#3a2a00;box-shadow:0 4px 0 #a87800}
.shop-btn.alt{background:#eef3fb;color:#203653;box-shadow:0 4px 0 #d5dfee}
.shop-btn:active:not(:disabled){transform:translateY(3px);box-shadow:none}.shop-btn:disabled{opacity:.45;filter:saturate(.5);cursor:not-allowed}
.shop-tag{position:absolute;right:12px;top:-8px;padding:2px 9px;border-radius:999px;background:#1c8a4a;color:#fff;font-size:10px;font-style:normal;font-weight:900}.shop-tag.miss{background:#6b7890}
.coin-toast{position:fixed;left:50%;top:calc(14px + var(--sat));z-index:9300;display:flex;align-items:center;gap:10px;padding:9px 16px 9px 10px;border-radius:999px;background:#10213bf2;color:#fff;transform:translateX(-50%);box-shadow:0 10px 24px #0007;animation:coinToast 3.200s ease-out forwards;pointer-events:none}
.coin-toast .coin{width:30px;height:30px}.coin-toast b{display:block;font-size:14px;color:#ffd54a}.coin-toast small{display:block;font-size:11px;opacity:.85}
@keyframes coinToast{0%{opacity:0;transform:translate(-50%,-20px)}8%{opacity:1;transform:translate(-50%,0)}88%{opacity:1}100%{opacity:0;transform:translate(-50%,-10px)}}
html[data-theme="dark"] .shop-item{background:#16233a;box-shadow:inset 0 0 0 2px #2b3a52,0 3px 0 #0a1324}html[data-theme="dark"] .shop-txt b{color:#e6edf7}html[data-theme="dark"] .shop-txt p,html[data-theme="dark"] .shop-how{color:#9fb0c8}
html[data-theme="dark"] body.tab-page #shopScreen{background:#0f1829}
/* 0.3.37 (V2): Parchimi - los temas del tablero son circulos pequenos */
.pc-themes>b{display:block}.pc-themes .pc-tname{font-style:normal;font-weight:800;color:#0b3d91}
.pc-dots{display:flex;flex-wrap:wrap;gap:9px;margin-top:8px}
.pc-dots .pc-dot{flex:none;width:30px;height:30px;min-width:0;min-height:0;padding:0;border:3px solid #999;border-radius:50%;cursor:pointer;touch-action:manipulation;box-shadow:0 2px 4px #0003;transition:transform .12s}
.pc-dots .pc-dot.on{transform:scale(1.18);box-shadow:0 0 0 3px #fff,0 0 0 5.500px #0b3d91}
html[data-theme="dark"] .pc-themes .pc-tname{color:#9fc0ff}html[data-theme="dark"] .pc-dots .pc-dot.on{box-shadow:0 0 0 3px #16233a,0 0 0 5.500px #9fc0ff}
/* 0.3.35 (V2): DOS - frases rapidas (boton del globo, lista y globo sobre el avatar) */
.dos-emobtn{position:absolute;left:2px;bottom:0;z-index:5;display:grid;place-items:center;width:40px;height:34px;padding:0;border:2px solid #ffffff66;border-radius:13px;background:#12063acc;color:#fff;cursor:pointer;touch-action:manipulation}
.dos-emobtn svg{width:20px;height:20px}.dos-emobtn.on{background:#ffd54a;color:#3a2a00;border-color:#fff}
.dos-emolist{position:absolute;left:2px;bottom:40px;z-index:8;display:grid;grid-template-columns:1fr 1fr;gap:6px;width:min(280px,92%);padding:8px;border-radius:16px;background:#12063af5;box-shadow:0 10px 24px #0009,inset 0 0 0 2px #8f6bff66}
.dos-emolist button{min-height:38px;padding:6px 8px;border:0;border-radius:11px;background:#fff;color:#1e0c52;font:inherit;font-size:12.500px;font-weight:800;cursor:pointer;touch-action:manipulation}
.dos-emolist button:active{transform:scale(.95);background:#ffd54a}
.dos-say{position:absolute;left:calc(50% + 18px);top:-12px;z-index:7;max-width:150px;padding:5px 10px;border:2.500px solid #111;border-radius:14px 14px 14px 3px;background:#fff;color:#111;font-size:12px;font-weight:800;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;quotes:none;pointer-events:none;opacity:0;animation:dosSay 3s ease-out forwards}
.dos-say::before,.dos-say::after{content:none}
.dos-say.r{left:auto;right:calc(50% + 18px);border-radius:14px 14px 3px 14px}
.dos-me{position:relative}
.dos-say.me{left:54px;top:-30px}
@keyframes dosSay{0%{opacity:0;transform:scale(.3)}8%{opacity:1;transform:scale(1.12)}14%{transform:scale(1)}85%{opacity:1}100%{opacity:0;transform:translateY(-8px)}}
/* 0.3.31 (V2): Mesa 3D - escenas intercambiables (patio, colmado dibujado y fotos desenfocadas) */
.d3-bg{position:absolute;inset:0;z-index:0}
.d3-bg svg{display:block;width:100%;height:100%}
.d3-bg.photo{background-size:cover;background-position:50% 40%;transform:scale(1.07)}
.d3-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(#0000 45%,#0006)}
.d3:not(.sc-patio){background:#1c1c22}.d3:not(.sc-patio)::before{display:none}
.d3-scenebtn{position:absolute;left:8px;top:38px;z-index:6;display:flex;align-items:center;gap:5px;padding:4px 10px 4px 7px;border:0;border-radius:999px;background:#ffffffe6;color:#10213b;font:inherit;font-size:10.500px;font-weight:900;cursor:pointer;touch-action:manipulation;box-shadow:0 2px 0 #0003}
.d3-scenebtn svg{width:16px;height:16px;flex:none}.d3-scenebtn:active{transform:translateY(2px);box-shadow:none}
/* 0.3.30 (V2): DOMINO «MESA 3D» (js/domino-3d.js) - mesa inclinada con CSS, jugadores de palitos en sillas plasticas, vaso de cerveza, globos y tu mano */
.d3{position:relative;height:clamp(450px,66vh,560px);margin:0 -6px 8px;border-radius:22px;overflow:hidden;background:linear-gradient(#7fcbff 0,#d6efff 27%,#57b157 27.3%,#2f8a35 100%);user-select:none;-webkit-user-select:none;box-shadow:inset 0 0 0 3px #1c5c2166,0 10px 22px #0b3d9126}
.d3::before{content:"";position:absolute;left:0;right:0;top:27.3%;bottom:0;background:repeating-linear-gradient(100deg,#ffffff0a 0 3px,transparent 3px 11px),radial-gradient(ellipse at 50% 0,#8fdc7a55,transparent 60%)}
.d3-hud{position:absolute;left:8px;right:8px;top:8px;z-index:6;display:flex;justify-content:space-between;pointer-events:none}
.d3-hud span{padding:4px 10px;border-radius:999px;background:#0c1a33cc;color:#dbe7fb;font-size:11px;font-weight:800}.d3-hud span.mine{background:#0b3d91e6}
.d3-hud b{margin-left:3px;color:#ffd54a;font-size:14px}.d3-hud i{display:none}
/* -- la mesa -- */
.d3-stage{position:absolute;inset:0;z-index:2;perspective:560px;perspective-origin:50% 6%;pointer-events:none}
.d3-table{position:absolute;left:0;right:0;bottom:108px;margin:0 auto;width:min(95%,370px);aspect-ratio:1;border-radius:16px;background:linear-gradient(135deg,#f3d8b2,#dcb787);box-shadow:inset 0 0 0 3px #c79f6a,0 16px 0 #b98c55,0 46px 40px #0007;transform:rotateX(47deg);transform-origin:50% 100%}
.d3-board{position:absolute;inset:13%;background:radial-gradient(ellipse at 28% 18%,#31508c,#0b1226 72%);clip-path:polygon(11% 0,89% 0,100% 11%,100% 89%,89% 100%,11% 100%,0 89%,0 11%);box-shadow:inset 0 0 0 3px #00000055}
.d3-chain{position:absolute;left:4%;right:4%;top:50%;transform:translateY(-50%)}
.d3-t{position:absolute;display:block;filter:drop-shadow(0 2.5px 0 #8f8468) drop-shadow(0 5px 4px #0008)}.d3-t svg{display:block;width:100%;height:100%}
.d3-t.pop{animation:d3Pop .5s cubic-bezier(.2,1.3,.4,1)}
@keyframes d3Pop{from{opacity:0;transform:translateY(-46px) scale(1.7) rotate(-10deg)}}
.d3-target{position:absolute;z-index:3;padding:0;border:4px dashed #ffd54a;border-radius:10px;background:#ffd54a66;transform:scale(1.35);pointer-events:auto;cursor:pointer;animation:d3Target .5s ease-in-out infinite alternate}
@keyframes d3Target{to{background:#ffd54acc;box-shadow:0 0 22px #ffd54a}}
.d3-empty{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:0 12%;color:#cfe0ff;font-size:22px;font-weight:800;line-height:1.25;text-align:center}
.d3-cup{position:absolute;width:10%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#0c0c0c 0 52%,#3a3a3a 56% 62%,#111 66%);box-shadow:inset 0 3px 5px #000}
.d3-cup.c1{left:1.500%;top:1.500%}.d3-cup.c2{right:1.500%;top:1.500%}.d3-cup.c3{left:1.500%;bottom:1.500%}.d3-cup.c4{right:1.500%;bottom:1.500%}
.d3-rack{position:absolute;display:flex;justify-content:center;align-items:center;gap:1.500%;border-radius:4px;background:linear-gradient(#c79f6a,#b98c55);box-shadow:inset 0 2px 0 #e9cfa6}
.d3-rack.t{left:24%;right:24%;top:4%;height:5%}.d3-rack.b{left:24%;right:24%;bottom:4%;height:5%}
.d3-rack.l{top:24%;bottom:24%;left:4%;width:5%;flex-direction:column}.d3-rack.r{top:24%;bottom:24%;right:4%;width:5%;flex-direction:column}
.d3-rack i{flex:none;border-radius:2px;background:#fbf6e6}
.d3-rack.t i{width:11%;height:80%;box-shadow:0 -9px 0 #efe6ca,0 -9px 0 1px #b9ae92}
.d3-rack.l i,.d3-rack.r i{height:11%;width:80%}.d3-rack.l i{box-shadow:5px -7px 0 #efe6ca}.d3-rack.r i{box-shadow:-5px -7px 0 #efe6ca}
/* -- los jugadores: silla plastica + palitos -- */
.d3-fig{position:absolute;z-index:1;width:108px}
.d3-fig svg{display:block;width:100%;overflow:visible}
.d3-fig.top{left:50%;top:30px;margin-left:-54px}
.d3-fig.left{left:-12px;top:36%;z-index:3}.d3-fig.right{right:-12px;top:36%;z-index:3}
.d3-fig.left .d3-chair,.d3-fig.right .d3-chair{opacity:.96}
.d3-tag{position:absolute;left:50%;top:-15px;z-index:2;display:flex;align-items:center;gap:4px;max-width:104px;padding:2px 4px 2px 8px;border-radius:999px;background:#0c1a33d9;color:#fff;font-size:10.5px;font-weight:800;white-space:nowrap;transform:translateX(-50%)}
.d3-tag b{overflow:hidden;text-overflow:ellipsis;font-weight:800}
.d3-tag i{flex:none;min-width:17px;height:17px;display:grid;place-items:center;border-radius:9px;background:#fbf6e6;color:#10213b;font-size:10px;font-style:normal;font-weight:900}
.d3-role{display:none}
.d3-mug{position:absolute;right:4px;bottom:30px;width:24px;transform-origin:50% 100%;filter:drop-shadow(0 2px 2px #0007)}
.d3-fig.top .d3-mug{right:8px;bottom:42px;width:20px}
.d3-body,.d3-head,.d3-arm{transform-box:fill-box}
.d3-fig.turn .d3-head>circle{stroke:#ffb800}
.d3-fig.turn .d3-head{animation:d3Turn .9s ease-in-out infinite alternate;transform-origin:50% 100%}
@keyframes d3Turn{from{filter:drop-shadow(0 0 2px #ffd54a)}to{filter:drop-shadow(0 0 9px #ffd54a)}}
.d3-fig.won .d3-head>circle{fill:#fff6d0;stroke:#f0b429}
.d3-fig.drunk .d3-body{transform-origin:50% 100%;animation:d3Wobble 1.500s ease-in-out infinite}
@keyframes d3Wobble{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}
.d3-fig.drunk .d3-head{transform-origin:50% 100%;animation:d3Nod 1.100s ease-in-out infinite alternate}
@keyframes d3Nod{to{transform:rotate(14deg) translateY(2px)}}
.d3-fig.reach .d3-arm.r{transform-origin:0 0;animation:d3Reach .75s ease-out}
.d3-fig.left.reach .d3-arm.r{animation-name:d3ReachSide}
.d3-fig.right.reach .d3-arm.r{animation:none}.d3-fig.right.reach .d3-arm.l{transform-origin:100% 0;animation:d3ReachSideL .75s ease-out}
@keyframes d3Reach{40%{transform:translate(-8px,10px) scale(1.2,1.7)}}
@keyframes d3ReachSide{40%{transform:translate(6px,-4px) scale(2.200,1.150) rotate(-12deg)}}
@keyframes d3ReachSideL{40%{transform:translate(-6px,-4px) scale(2.200,1.150) rotate(12deg)}}
.d3-fig.sip .d3-mug{animation:d3Sip 1.100s ease-in-out}
@keyframes d3Sip{30%,65%{transform:translate(-26px,-58px) rotate(-55deg)}}
.d3-fig.top.sip .d3-mug{animation-name:d3SipTop}
@keyframes d3SipTop{30%,65%{transform:translate(-22px,-34px) rotate(-55deg)}}
/* -- globos de conversacion -- */
.d3-bub{position:absolute;z-index:9;max-width:150px;padding:6px 10px;border:2.500px solid #111;border-radius:16px;background:#fff;color:#111;font-size:12.500px;font-weight:800;line-height:1.2;pointer-events:none;opacity:0;animation:d3Bub 3.400s ease-out forwards}
.d3-bub::after{content:"";position:absolute;bottom:-9px;width:12px;height:12px;border:solid #111;border-width:0 2.500px 2.500px 0;background:#fff;transform:rotate(45deg) skew(12deg,12deg)}
.d3-bub.top{left:calc(50% + 30px);top:36px}.d3-bub.top::after{left:10px}
.d3-bub.left{left:58px;top:calc(36% - 34px)}.d3-bub.left::after{left:10px}
.d3-bub.right{right:58px;top:calc(36% - 34px)}.d3-bub.right::after{right:10px}
.d3-bub.bottom{left:70px;bottom:132px}.d3-bub.bottom::after{left:14px}
@keyframes d3Bub{0%{opacity:0;transform:scale(.3)}7%{opacity:1;transform:scale(1.1)}12%{transform:scale(1)}86%{opacity:1}100%{opacity:0;transform:translateY(-10px)}}
/* -- lo tuyo: turno, vaso, mano y atril -- */
.d3-turn{position:absolute;left:8px;bottom:106px;z-index:6;padding:5px 12px;border-radius:999px;background:#0c1a33d9;color:#dbe7fb;font-size:11.500px;font-weight:900;pointer-events:none}
.d3-turn.mine{background:#ffd54a;color:#3a2a00;animation:arcPulseBtn 1.200s ease-in-out infinite}
.d3-beer{position:absolute;right:8px;bottom:102px;z-index:6;width:58px;padding:4px 4px 2px;border:0;border-radius:16px;background:#0c1a3399;cursor:pointer;touch-action:manipulation;transition:transform .1s}
.d3-beer svg{display:block;width:100%;transform-origin:30% 100%}.d3-beer small{display:block;color:#fff;font-size:10px;font-weight:900;letter-spacing:.5px}
.d3-beer:active{transform:scale(.94)}.d3-beer.empty{opacity:.65;cursor:default}
.d3-beer.sip svg{animation:d3MySip 1s ease-in-out}
@keyframes d3MySip{30%,62%{transform:rotate(-42deg) translate(-4px,-10px)}}
.d3-myarm{position:absolute;inset:0;z-index:7;width:100%;height:100%;overflow:visible;pointer-events:none}
.d3-myarm path{fill:none;stroke:#111;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.d3-hand{position:absolute;z-index:8;width:28px;height:28px;margin:-14px 0 0 -14px;border:4.500px solid #111;border-radius:50%;background:#fff;pointer-events:none}
.d3-held{position:absolute;left:50%;bottom:55%;width:44px;transform:translateX(-50%) rotate(-10deg);filter:drop-shadow(0 8px 6px #0008)}.d3-held svg{display:block;width:100%}
.d3-myrack{position:absolute;left:6px;right:6px;bottom:6px;z-index:5;display:flex;justify-content:center;align-items:flex-end;gap:4px;min-height:92px;padding:4px 6px 9px;border-radius:14px;background:linear-gradient(180deg,#0000 0 62%,#b98c55 62% 70%,#8a5a2b 70%);}
.d3-my{flex:0 1 44px;min-width:0;padding:0;border:0;background:none;touch-action:none;cursor:grab;transition:transform .15s,filter .15s}
.d3-my svg{display:block;width:100%;filter:drop-shadow(0 3px 0 #b9ae92) drop-shadow(0 5px 4px #0007)}
.d3-my.ok{transform:translateY(-10px)}.d3-my.ok svg rect{stroke:#f0a800;stroke-width:4}
.d3-my.no{filter:brightness(.82);cursor:default}
.d3-my.picked{transform:translateY(-20px)}.d3-my.lifted{opacity:.2}
.d3.dragging .d3-my{cursor:grabbing}
.d3-myrack.blur .d3-my svg{filter:blur(11px)}
.d3.drunk .d3-stage{animation:d3Sway 2.400s ease-in-out infinite}
@keyframes d3Sway{0%,100%{transform:rotate(-2.500deg) translateX(-5px)}50%{transform:rotate(2.500deg) translateX(5px)}}
@media(max-height:700px){.d3{height:430px}.d3-fig{width:96px}.d3-fig.top{margin-left:-48px}}
@media(prefers-reduced-motion:reduce){.d3.drunk .d3-stage,.d3-fig.drunk .d3-body,.d3-fig.drunk .d3-head,.d3-fig.turn .d3-head,.d3-target,.d3-turn.mine{animation:none}}
html[data-fx="off"] .d3.drunk .d3-stage,html[data-fx="off"] .d3-fig.drunk .d3-body,html[data-fx="off"] .d3-fig.drunk .d3-head{animation:none}
/* 0.3.29 (V2, pase visual 4): iconos dibujados, STOP (votacion y resultado), retoque del Sudoku */
.ico{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.22em;flex:none}
.arc-chip .crown .ico{width:24px;height:24px;filter:drop-shadow(0 2px 2px #0004)}
.arc-curtain .lock .ico{width:54px;height:54px}
.es-pile .ico{margin:0 2px}
/* -- STOP: votacion y tabla de la ronda -- */
.mini-game.sp:not(.sc) .stop-top.small .arc-sub{margin:0;color:#dbe7fb;font-size:12px;line-height:1.35}
.mini-game.sp:not(.sc) .sp-vote section{padding:10px;border:0;border-radius:18px;background:#fff;box-shadow:inset 0 0 0 2px #dce4ef,0 3px 0 #d5dfee}
.mini-game.sp:not(.sc) .sp-vote h4{display:inline-block;margin:0 0 7px;padding:3px 11px;border-radius:999px;background:#0b3d91;color:#fff;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}
.mini-game.sp:not(.sc) .sp-ans{border-radius:13px}
.mini-game.sp:not(.sc) .sp-ans b{font-size:16px}
.mini-game.sp:not(.sc) .sp-rank li{border-radius:16px;box-shadow:0 3px 0 #d5dfee}
.mini-game.sp:not(.sc) .sp-rank li.me{box-shadow:0 3px 0 #e2bd55}
html[data-theme="dark"] .mini-game.sp:not(.sc) .sp-vote section{background:#16233a;box-shadow:inset 0 0 0 2px #2b3a52,0 3px 0 #0a1324}
/* -- Sudoku: solo forma y relieve (los colores siguen saliendo del estilo elegido en Personalizar) -- */
.game-shell #board.board{border-radius:14px;overflow:hidden;box-shadow:0 10px 22px #0b3d911c}
.game-shell .keypad .num-btn{border-radius:14px;box-shadow:0 3px 0 #0b3d9124;transition:transform .08s,box-shadow .08s}
.game-shell .keypad .num-btn:active{transform:translateY(3px);box-shadow:none}
.game-shell .mode-row .tool{border-radius:14px;box-shadow:0 3px 0 #0b3d9124;transition:transform .08s,box-shadow .08s}
.game-shell .mode-row .tool:active{transform:translateY(3px);box-shadow:none}
.game-shell .cell.selected{box-shadow:inset 0 0 0 2.5px #1976d2aa}
html[data-theme="dark"] .game-shell .keypad .num-btn,html[data-theme="dark"] .game-shell .mode-row .tool{box-shadow:0 3px 0 #0008}
/* 0.3.28 (V2, pase visual 3): tarjeta de resultado comun en DOS, Domino, Parchimi y Dominopolis + STOP con aspecto de concurso */
.res-ic.lose{background:#eef1f6}
.dos-endcard{border-radius:26px;padding:22px 20px 16px}.dos-endcard h3{font-size:25px;margin:0 0 4px}.dos-endcard .dos-kicker{margin:0 0 4px;color:#d62027;font-size:11px;font-weight:900;letter-spacing:.14em}
.dos-endcard .dos-endbtns{display:grid;gap:8px;margin-top:14px}.dos-endcard .dos-endbtns .arc-btn{width:100%;min-height:46px}
.dp-end .res-ic{margin-bottom:8px}.dp-end h3{text-align:center}
.game-end-card .res-ic{margin:0 auto 6px}
/* -- STOP (modo normal) -- */
.mini-game.sp:not(.sc){overflow:clip}
#miniGamesScreen:has(.mini-game.sp:not(.sc) .stop-list){overflow:clip}
.mini-game.sp:not(.sc) .stop-top{position:sticky;top:6px;z-index:4;margin:6px -4px 10px;padding:10px 14px;border-radius:20px;background:radial-gradient(ellipse at 20% 0,#27468a,#0c1a33 75%);box-shadow:inset 0 0 0 2px #3a5ea8,0 8px 18px #0c1a3345}
.mini-game.sp:not(.sc) .stop-letter{width:64px;height:64px;border-radius:16px;border:3px solid #fff;background:linear-gradient(145deg,#ff5b66,#c8141f);font-size:40px;box-shadow:0 5px 0 #7c0d13,0 0 18px #ff4d5777;transform:rotate(-5deg);text-shadow:0 2px 0 #7c0d13}
.mini-game.sp:not(.sc) .stop-timer{color:#b9c9ea;font-size:12px}
.mini-game.sp:not(.sc) .stop-timer b{color:#ffd54a;font-size:30px;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 0 12px #ffd54a66}
.mini-game.sp:not(.sc) .stop-timer .bar{height:12px;margin-top:6px;border-radius:999px;background:#060d1c;box-shadow:inset 0 2px 4px #000a}
.mini-game.sp:not(.sc) .stop-timer .bar i{border-radius:999px;background:linear-gradient(90deg,#e5303c 0,#ffcb2e 70px,#2fb86a 150px);box-shadow:inset 0 2px 0 #ffffff55}
.mini-game.sp:not(.sc) .sp-round{margin:-2px 0 4px;color:#0b3d91;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.mini-game.sp:not(.sc) .sp-chips span{padding:4px 11px 4px 4px;border:0;background:#eef3fb;box-shadow:0 2px 0 #d5dfee;font-size:11.5px}
.mini-game.sp:not(.sc) .sp-chips span.ok{background:#dff6e8;box-shadow:0 2px 0 #9fd8b6}
.mini-game.sp:not(.sc) .sp-chips span.me{box-shadow:0 0 0 2px #1976d2,0 2px 0 #d5dfee}
.mini-game.sp:not(.sc) .stop-list{gap:8px;counter-reset:sp}
.mini-game.sp:not(.sc) .stop-list li{position:relative;grid-template-columns:1fr;gap:2px;padding:8px 40px 8px 46px;border-radius:16px;background:#fff;box-shadow:inset 0 0 0 2px #dce4ef,0 3px 0 #d5dfee;counter-increment:sp;transition:box-shadow .2s,background .2s}
.mini-game.sp:not(.sc) .stop-list li::before{content:counter(sp);position:absolute;left:10px;top:50%;width:26px;height:26px;margin-top:-13px;display:grid;place-items:center;border-radius:50%;background:#0b3d91;color:#fff;font-size:12px;font-weight:900}
.mini-game.sp:not(.sc) .stop-list label{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#5e6f88}
.mini-game.sp:not(.sc) .stop-list input{width:100%;min-height:30px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;outline:0;font-size:18px;font-weight:800;color:#10213b}
.mini-game.sp:not(.sc) .stop-list li:focus-within{box-shadow:inset 0 0 0 2.5px #1976d2,0 3px 0 #9dbcea;background:#f7fbff}
.mini-game.sp:not(.sc) .stop-list li:has(input:not(:placeholder-shown)){box-shadow:inset 0 0 0 2px #7fd3a2,0 3px 0 #9fd8b6;background:#f3fbf6}
.mini-game.sp:not(.sc) .stop-list li:has(input:not(:placeholder-shown))::before{background:#1c8a4a}
.mini-game.sp:not(.sc) .stop-list li:has(input:not(:placeholder-shown))::after{content:"";position:absolute;right:14px;top:50%;width:8px;height:15px;margin-top:-11px;border:solid #1c8a4a;border-width:0 3.5px 3.5px 0;transform:rotate(45deg)}
#miniGameStage .mini-game.sp:not(.sc) .arc-btn.stopbtn{min-width:190px;min-height:60px;border:4px solid #fff;border-radius:999px;background:linear-gradient(180deg,#ff5b66,#c8141f)!important;color:#fff;font-size:24px;letter-spacing:1px;box-shadow:0 6px 0 #7c0d13,0 0 0 3px #e5303c,0 12px 20px #c8141f44}
.mini-game.sp:not(.sc) .stopbtn:not(:disabled){animation:spStopGo .6s ease-in-out infinite alternate}
.mini-game.sp:not(.sc) .stopbtn:disabled{opacity:.4;filter:saturate(.4);box-shadow:0 3px 0 #7c0d13}
@keyframes spStopGo{to{transform:scale(1.07);box-shadow:0 6px 0 #7c0d13,0 0 0 3px #e5303c,0 0 26px #ff4d57}}
html[data-theme="dark"] .mini-game.sp:not(.sc) .stop-list li{background:#16233a;box-shadow:inset 0 0 0 2px #2b3a52,0 3px 0 #0a1324}
html[data-theme="dark"] .mini-game.sp:not(.sc) .stop-list input{color:#e6edf7}
html[data-theme="dark"] .mini-game.sp:not(.sc) .stop-list li:has(input:not(:placeholder-shown)){background:#12301f;box-shadow:inset 0 0 0 2px #2f8f5c,0 3px 0 #0a1324}
html[data-theme="dark"] .mini-game.sp:not(.sc) .sp-chips span{background:#1b2a44;box-shadow:0 2px 0 #0a1324;color:#dbe6f5}
@media(prefers-reduced-motion:reduce){.mini-game.sp:not(.sc) .stop-letter,.mini-game.sp:not(.sc) .stopbtn:not(:disabled){animation:none}}
/* 0.3.26 (V2): DOS - boton de DOS y boton para pillar al que no aviso */
.dos-shout{position:absolute;left:0;right:0;bottom:32px;z-index:5;display:flex;justify-content:center;gap:8px;pointer-events:none}
.dos-shout button{pointer-events:auto;border:3px solid #fff;border-radius:999px;font:inherit;font-weight:900;cursor:pointer;touch-action:manipulation}
/* 0.3.27: el boton de DOS esta siempre en la fila de Robar/Pasar, sin latir ni cambiar de color (no da pistas) */
.dos-mebtns .dos-callbtn{flex:none;min-height:40px;padding:6px 13px;border:2px solid #fff;border-radius:999px;background:linear-gradient(180deg,#ffe37a,#ffb800);color:#3a2a00;font:inherit;font-size:15px;font-weight:900;letter-spacing:.3px;box-shadow:0 4px 0 #9a6a00;transform:rotate(-3deg);cursor:pointer;touch-action:manipulation}
.dos-mebtns .dos-callbtn:active{transform:translateY(4px) rotate(-3deg) scale(.94);box-shadow:none}
.dos-mebtns .dos-callbtn.hit{animation:dosCallHit .3s ease-out}
@keyframes dosCallHit{40%{transform:rotate(4deg) scale(1.2)}}
.dos-mebtns{gap:6px}.dos-mebtns .arc-btn{padding:7px 11px}
.dos-catchbtn{max-width:92%;padding:8px 14px;background:linear-gradient(180deg,#ff7a84,#e5303c);color:#fff;font-size:13.5px;box-shadow:0 5px 0 #8f121b,0 10px 18px #0007;animation:dosCallBtn .3s ease-in-out infinite alternate;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dos-shout button:active{transform:translateY(4px);box-shadow:none;animation:none}
@keyframes dosCallBtn{to{transform:rotate(3deg) scale(1.1)}}
.dos-fx.fx-caught{z-index:6}.dos-fx.fx-caught span{color:#ff4d57;-webkit-text-stroke:2px #fff}.dos-fx.fx-caught b{padding:3px 12px;border-radius:999px;background:#12063acc;font-size:15px}
@media(prefers-reduced-motion:reduce){.dos-callbtn,.dos-catchbtn{animation:none}}
/* 0.3.25 (V2, pase visual 2): DOS - las 7 sugerencias aprobadas por el dueno. Solo aspecto, ninguna regla. */
/* 1) cartas que no puedes jugar: a color y mas abajo; las jugables suben mas */
.dos-room2 .dos-cardbtn:disabled{opacity:1;filter:brightness(.9);--lift:9px}
.dos-room2 .dos-hand.idle .dos-cardbtn:disabled{filter:none;--lift:0px}
.dos-room2 .dos-cardbtn.ok{--lift:-16px}
.dos-room2 .dos-cardbtn.ok .dcard{box-shadow:0 0 0 3px #ffd54a,0 0 14px #ffd54a99,0 8px 14px #0007}
.dos-room2 .dos-cardbtn{transition:transform .18s ease-out,filter .18s}
/* 2) la carta vuela desde quien la tiro; las robadas salen del mazo */
.dos-top .dcard.drop.fly{position:relative;z-index:6;animation:dosFly .5s cubic-bezier(.2,.8,.3,1.15)}
@keyframes dosFly{from{opacity:.5;transform:translate(var(--dx,0),var(--dy,-70px)) rotate(-38deg) scale(.5)}55%{opacity:1}}
.dos-room2 .dos-cardbtn.dealt.fly{z-index:6;animation:dosFromPile .5s cubic-bezier(.2,.8,.3,1.1) backwards;animation-delay:calc(var(--k,0)*35ms)}
@keyframes dosFromPile{from{opacity:.3;transform:translate(var(--dx,0),var(--dy,-120px)) rotate(0deg) scale(.6)}}
/* 3) la mesa brilla con el color activo */
.dos-arena::before{transition:box-shadow .45s}
.dos-arena.tint-r::before{box-shadow:0 0 0 6px #2b1173,0 0 0 9px #ff4d57cc,0 0 38px 8px #ff4d5788,0 18px 40px #0007}
.dos-arena.tint-b::before{box-shadow:0 0 0 6px #2b1173,0 0 0 9px #4d9bffcc,0 0 38px 8px #4d9bff88,0 18px 40px #0007}
.dos-arena.tint-g::before{box-shadow:0 0 0 6px #2b1173,0 0 0 9px #3fd27ccc,0 0 38px 8px #3fd27c88,0 18px 40px #0007}
.dos-arena.tint-y::before{box-shadow:0 0 0 6px #2b1173,0 0 0 9px #ffcb2ecc,0 0 38px 8px #ffcb2e88,0 18px 40px #0007}
/* 4) aviso de DOS / Ultima sobre el avatar */
.dos-av .dos-call{position:absolute;left:50%;top:-13px;z-index:1;transform:translateX(-50%) rotate(-6deg);padding:2px 8px;border:2px solid #fff;border-radius:10px;background:#ffd54a;color:#3a2a00;font-size:10.5px;font-weight:900;line-height:1.2;text-decoration:none;white-space:nowrap;box-shadow:0 3px 8px #0007;animation:dosCall .55s ease-in-out infinite alternate}
.dos-av .dos-call.one{background:#ff4d57;color:#fff}
@keyframes dosCall{to{transform:translateX(-50%) rotate(5deg) scale(1.14)}}
/* 5) abanico del rival: hasta 8 cartas reales y tiembla con la ultima */
.dos-arena .dos-backs i{margin-left:-10px;transition:transform .25s}
.dos-arena .dos-backs.last i{animation:dosTremble .16s linear infinite alternate;box-shadow:0 0 8px #ff4d57}
@keyframes dosTremble{from{transform:rotate(-7deg) translateX(-1px)}to{transform:rotate(7deg) translateX(1px)}}
/* 6) Robar y Pasar con mas contraste */
.dos-mebtns .arc-btn:disabled{opacity:.34;filter:saturate(.4);box-shadow:none;transform:translateY(3px)}
.dos-mebtns #dosDraw2:not(:disabled){background:linear-gradient(180deg,#ff5b66,#e5303c);color:#fff;box-shadow:0 4px 0 #8f121b,0 0 0 2px #ffffff55}
.dos-mebtns .arc-btn.alt:not(:disabled){background:linear-gradient(180deg,#fff,#e9e1ff);color:#3d1a94;box-shadow:0 4px 0 #a48df0,0 0 0 2px #ffffff55}
.dos-mebtns .arc-btn.go{animation:dosGo .7s ease-in-out infinite alternate}
@keyframes dosGo{to{transform:scale(1.08);filter:brightness(1.15) drop-shadow(0 0 8px #ffd54a)}}
/* 7) destello de toda la mesa con las cartas especiales */
.dos-room2{position:relative}
.dos-room2[class*="fxr-"]::after{content:"";position:absolute;inset:0;z-index:7;border-radius:inherit;pointer-events:none;opacity:0;animation:dosRoomFlash .8s ease-out}
.dos-room2.fxr-d2::after,.dos-room2.fxr-d4::after,.dos-room2.fxr-super::after{background:radial-gradient(ellipse at 50% 40%,#ff3b4700 30%,#ff3b47bb)}
.dos-room2.fxr-skip::after,.dos-room2.fxr-rev::after{background:radial-gradient(ellipse at 50% 40%,#ffd54a00 30%,#ffd54aaa)}
.dos-room2.fxr-rewind::after{background:radial-gradient(ellipse at 50% 40%,#8fc4ff00 30%,#8fc4ffbb)}
.dos-room2.fxr-tornado::after{background:radial-gradient(ellipse at 50% 40%,#ffffff00 30%,#ffffffaa)}
.dos-room2.fxr-parry::after{background:radial-gradient(ellipse at 50% 40%,#7fd4ff00 30%,#7fd4ffbb)}
.dos-room2.fxr-wild::after{background:conic-gradient(from 0deg at 50% 40%,#d6202788,#e2a40088,#1c8a4a88,#1761b288,#d6202788);-webkit-mask:radial-gradient(ellipse at 50% 40%,#0000 30%,#000);mask:radial-gradient(ellipse at 50% 40%,#0000 30%,#000)}
@keyframes dosRoomFlash{0%{opacity:0}18%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.dos-top .dcard.drop.fly,.dos-room2 .dos-cardbtn.dealt.fly,.dos-av .dos-call,.dos-arena .dos-backs.last i,.dos-mebtns .arc-btn.go{animation:none}.dos-room2[class*="fxr-"]::after{display:none}}
/* 0.3.24 (V2, pase visual 1): naipes dibujados, mesas con borde de madera, marcador comun, Tres en raya y Puntos y cajas con tema propio */
/* -- cabecera: el subtitulo repetia el mismo aviso que ya sale en la franja de mensaje -- */
#miniGameStage .mini-game:has(.arc-msg) .mini-game-head small{display:none}
#miniGameStage .arc-msg{background:linear-gradient(135deg,#0b3d91,#1761b2);color:#fff;border-radius:999px;box-shadow:0 4px 10px #0b3d9126;font-size:12.5px}
/* -- fichas de jugador -- */
#miniGameStage .arc-chip{border-radius:16px;background:linear-gradient(180deg,#fff,#f1f5fc);box-shadow:0 3px 0 #d5dfee}
#miniGameStage .arc-chip .av{width:34px;height:34px;font-size:15px;box-shadow:inset 0 -3px 0 #0003,0 0 0 3px #fff,0 2px 6px #0003}
#miniGameStage .arc-chip strong{font-size:13px}
#miniGameStage .arc-chip.p0.turn{background:linear-gradient(135deg,#fff,#ffe3e6);box-shadow:0 3px 0 #e12636}
#miniGameStage .arc-chip.p1.turn{background:linear-gradient(135deg,#fff,#dcebff);box-shadow:0 3px 0 #1761b2}
#miniGameStage .arc-chip.turn::after{content:"";position:absolute;right:10px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;background:#25c26e;box-shadow:0 0 0 3px #25c26e33;animation:v24Blink 1.1s ease-in-out infinite alternate}
@keyframes v24Blink{to{opacity:.35;transform:scale(.8)}}
/* -- marcador (Tres en raya, 4 en linea...) -- */
#miniGameStage .match-score{background:linear-gradient(180deg,#14284a,#0c1a33);border:0;border-radius:16px;padding:8px 10px;box-shadow:0 6px 14px #0c1a3330,inset 0 1px 0 #ffffff22}
#miniGameStage .match-score span{color:#dbe7fb;font-size:11.5px}
#miniGameStage .match-score b{min-width:34px;height:32px;border-radius:9px;background:#060d1c;color:#ffd54a;font-size:18px;box-shadow:inset 0 2px 4px #000a;font-variant-numeric:tabular-nums}
#miniGameStage .match-score i{color:#7f93b6;font-size:10px}
/* -- mesa de cartas: borde de madera y tapete con trama -- */
#miniGameStage .arc-felt{border-radius:22px;padding:14px;background:radial-gradient(ellipse at 50% 20%,#ffffff14,transparent 60%),repeating-linear-gradient(45deg,#ffffff05 0 2px,transparent 2px 5px),radial-gradient(ellipse at 50% 25%,var(--felt1),var(--felt2));box-shadow:inset 0 0 0 2px #0a2e1f,inset 0 0 0 7px #7a4a22,inset 0 0 0 8px #c08a4a,inset 0 0 0 9px #4a2a10,inset 0 14px 38px #0007,0 10px 22px #0a275226}
#miniGameStage .arc-escoba .d-hand,#miniGameStage .arc-rummy .d-hand{margin:10px 0 6px;padding:12px 8px 10px;border-radius:18px;background:linear-gradient(180deg,#8a5a2b,#6b411c);box-shadow:inset 0 2px 0 #c08a4a,inset 0 -3px 0 #40250d,0 6px 14px #3b251033}
#miniGameStage .es-pile{background:#00000059;border-radius:999px;padding:4px 10px}
/* -- naipes franceses -- */
#miniGameStage .pcard{border-radius:9px;border:1px solid #c3cddd;background:linear-gradient(160deg,#fff 55%,#eef2f9);box-shadow:0 1px 0 #fff inset,0 3px 0 #9aa7bd,0 6px 10px #0004}
#miniGameStage .pcard b{top:4px;left:5px;font-size:16px;letter-spacing:-.5px}
#miniGameStage .pcard i{top:20px;left:6px;font-size:12px}
#miniGameStage .pcard em{padding-top:8px;font-size:30px}
#miniGameStage .pcard.fig em{font-size:26px;font-weight:900;font-family:Georgia,"Times New Roman",serif}
#miniGameStage .pcard.fig em::before{content:"";position:absolute;inset:20px 9px 9px;border:1.5px solid currentColor;border-radius:5px;opacity:.28}
#miniGameStage .pcard u{position:absolute;right:5px;bottom:4px;font-size:11px;line-height:1;text-decoration:none;transform:rotate(180deg);opacity:.75}
#miniGameStage .pcard.back,#miniGameStage .bj-card.back{border:3px solid #fff;background:radial-gradient(circle at 50% 50%,#ffd54a 0 13%,transparent 14%),repeating-linear-gradient(45deg,#0b3d91 0 5px,#1352b8 5px 10px),#0b3d91;background-blend-mode:normal;box-shadow:inset 0 0 0 2px #0b3d91,inset 0 0 0 3.5px #ffd54a,0 3px 0 #9aa7bd,0 6px 10px #0005}
#miniGameStage .pcard.back u,#miniGameStage .pcard.mini u,#miniGameStage .pcard.empty u{display:none}
#miniGameStage .pcard.mini{box-shadow:inset 0 0 0 1px #0b3d91,inset 0 0 0 2px #ffd54a,0 2px 5px #0005}
#miniGameStage .pcard.empty{border:2px dashed #ffffff66;background:transparent;box-shadow:none}
#miniGameStage .bj-card{background:linear-gradient(160deg,#fff 55%,#eef2f9);box-shadow:0 3px 0 #9aa7bd,0 6px 10px #0006}
#miniGameStage .bj-card.sm,#miniGameStage .bj-card.sm.back{box-shadow:0 2px 0 #9aa7bd,0 3px 6px #0006}
/* -- baraja espanola -- */
#miniGameStage .scard{border-radius:10px;border:1px solid #b8914a;background:linear-gradient(160deg,#fffdf5 50%,#f4e4bd);box-shadow:inset 0 0 0 3px #fffaf0,inset 0 0 0 4px #d9bf86,0 3px 0 #a98a52,0 6px 10px #0005}
#miniGameStage .scard b{top:6px;left:8px;font-size:16px}
#miniGameStage .scard em{padding:4px 0 8px}
#miniGameStage .scard em svg{width:34px;height:34px;filter:drop-shadow(0 1px 0 #0002)}
#miniGameStage .scard small{bottom:6px;font-size:7.5px;text-transform:uppercase;letter-spacing:.3px}
#miniGameStage .scard u{display:none}
/* -- carta elegida y carta que cae en la mesa -- */
#miniGameStage .cardbtn.lift .pcard,#miniGameStage .cardbtn.lift .scard{box-shadow:0 0 0 3px #ffd54a,0 10px 16px #0006}
#miniGameStage .es-table .scard.deal,#miniGameStage .rm-piles .pcard.deal,#miniGameStage .r-meld .pcard.deal{animation:v24Throw .42s cubic-bezier(.2,1.2,.4,1) backwards}
@keyframes v24Throw{from{opacity:0;transform:translateY(70px) rotate(14deg) scale(1.25)}}
/* -- Tres en raya: pizarra de noche -- */
#miniGameStage .ttt-board{gap:0;padding:12px;border-radius:24px;background:radial-gradient(circle at 50% 0,#243f7a,#0c1a33 70%);box-shadow:inset 0 0 0 3px #2a4a8a,inset 0 12px 30px #0008,0 12px 26px #0c1a3340}
#miniGameStage .ttt-cell{border:0;border-radius:0;background:transparent;box-shadow:none;border-right:4px solid #5f86d6;border-bottom:4px solid #5f86d6}
#miniGameStage .ttt-cell:nth-child(3n){border-right-width:0}
#miniGameStage .ttt-cell:nth-child(n+7){border-bottom-width:0}
/* 0.3.76: tablero grande de 5×5 (cuatro en línea). Mismas rayas, otra cuadrícula */
#miniGameStage .ttt-board.n5{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr))}
#miniGameStage .ttt-board.n5 .ttt-cell{border-right-width:3px;border-bottom-width:3px}
#miniGameStage .ttt-board.n5 .ttt-cell:nth-child(5n){border-right-width:0}
#miniGameStage .ttt-board.n5 .ttt-cell:nth-child(n+21){border-bottom-width:0}
#miniGameStage .ttt-cell:not(:disabled):active{background:#ffffff14;transform:none;box-shadow:none}
#miniGameStage .ttt-mark{transform:none}
#miniGameStage .ttt-mark svg{width:72%;height:72%;fill:none;stroke-width:6;stroke-linecap:round;overflow:visible}
#miniGameStage .ttt-cell.mark-x svg{stroke:#ff5d6c;filter:drop-shadow(0 0 7px #ff5d6ccc)}
#miniGameStage .ttt-cell.mark-o svg{stroke:#59c2ff;filter:drop-shadow(0 0 7px #59c2ffcc)}
#miniGameStage .ttt-mark svg path,#miniGameStage .ttt-mark svg circle{stroke-dasharray:72;animation:v24Draw .3s ease-out backwards}
#miniGameStage .ttt-mark svg path+path{animation-delay:.14s}
@keyframes v24Draw{from{stroke-dashoffset:72}}
#miniGameStage .ttt-cell.winning-cell{box-shadow:none;background:#ffd54a2e;border-radius:14px}
#miniGameStage .ttt-cell.winning-cell svg{stroke:#ffd54a;filter:drop-shadow(0 0 9px #ffd54a)}
/* -- Puntos y cajas: hoja de cuaderno -- */
#miniGameStage .dots-board{padding:18px;border-radius:16px;background:linear-gradient(90deg,transparent 0 26px,#f2a3a8 26px 27.5px,transparent 27.5px),repeating-linear-gradient(0deg,transparent 0 21px,#cfe0f7 21px 22px),#fffdf6;box-shadow:inset 0 0 0 1px #e3d9bd,0 2px 0 #e9dfc3,0 5px 0 #f6eed8,0 12px 22px #3b251026}
#miniGameStage .dd{background:#22324d;box-shadow:0 0 0 2px #fffdf6}
#miniGameStage .dedge::after{background:repeating-linear-gradient(90deg,#b9c7dc 0 5px,transparent 5px 9px);border-radius:3px}
#miniGameStage .dedge.v::after{background:repeating-linear-gradient(0deg,#b9c7dc 0 5px,transparent 5px 9px)}
#miniGameStage .dedge.h::after{height:4px;margin-top:-2px}#miniGameStage .dedge.v::after{width:4px;margin-left:-2px}
#miniGameStage .dedge:not(:disabled):hover::after{background:#9db7dd}
#miniGameStage .dedge.on::after{border-radius:4px}
#miniGameStage .dedge.on.h::after{height:6px;margin-top:-3px}#miniGameStage .dedge.on.v::after{width:6px;margin-left:-3px}
#miniGameStage .dedge.on.p0::after{background:var(--p0)}#miniGameStage .dedge.on.p1::after{background:var(--p1)}
#miniGameStage .dbox{margin:4px;border-radius:6px;font-family:"Comic Sans MS","Segoe Print",cursive}
#miniGameStage .dbox.own0{background:repeating-linear-gradient(-45deg,#e1263626 0 4px,#e1263650 4px 8px);color:#c11a29}
#miniGameStage .dbox.own1{background:repeating-linear-gradient(-45deg,#1761b226 0 4px,#1761b250 4px 8px);color:#104d92}
/* -- 4 en linea: la ficha cae desde arriba -- */
#miniGameStage .connect-board{border-radius:22px;box-shadow:0 6px 0 #082659,0 16px 26px #0b3d9140,inset 0 2px 0 #ffffff55}
html[data-theme="dark"] #miniGameStage .arc-chip{background:linear-gradient(180deg,#1b2a44,#14213a);box-shadow:0 3px 0 #0a1324}
html[data-theme="dark"] #miniGameStage .arc-chip.p0.turn{background:linear-gradient(135deg,#1b2a44,#4a1a22)}
html[data-theme="dark"] #miniGameStage .arc-chip.p1.turn{background:linear-gradient(135deg,#1b2a44,#143a66)}
/* 0.3.23 (V2, Fase 6.3): frases rapidas en las partidas online de dos - boton flotante, lista y globo */
.emo-box{position:fixed;right:12px;bottom:calc(14px + var(--sab));z-index:45;display:grid;justify-items:end;gap:8px}
.emo-box.hidden{display:none}
.emo-btn{width:52px;height:52px;border:0;border-radius:50%;background:linear-gradient(180deg,#2a7de1,#0b4fb3);color:#fff;font-size:24px;box-shadow:0 4px 0 #083a85,0 8px 16px #0b3d9140;cursor:pointer}
.emo-btn:active{transform:translateY(3px);box-shadow:0 1px 0 #083a85}
.emo-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:min(280px,82vw);padding:10px;border-radius:18px;background:#fff;box-shadow:0 14px 40px #07172b55;border:1px solid #dce4ef}
.emo-panel.hidden{display:none}
.emo-panel button{min-height:42px;padding:6px 8px;border:1px solid #dce4ef;border-radius:12px;background:#f5f8fc;color:#203653;font-size:13.5px;font-weight:800;cursor:pointer}
.emo-bubble{position:fixed;left:50%;top:calc(84px + var(--sat));z-index:9200;transform:translate(-50%,-14px);display:grid;justify-items:center;gap:1px;max-width:86vw;padding:8px 16px;border-radius:18px;background:#10213b;color:#fff;box-shadow:0 10px 30px #0006;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.emo-bubble.show{opacity:1;transform:translate(-50%,0)}
.emo-bubble.mine{background:#0b3d91}
.emo-bubble small{font-size:11.5px;opacity:.75;font-weight:800}.emo-bubble b{font-size:19px;line-height:1.2;text-align:center}
html[data-theme="dark"] .emo-panel{background:#16223a;border-color:#26344f}html[data-theme="dark"] .emo-panel button{background:#101a2e;border-color:#26344f;color:#e6edf9}
/* 0.3.20: golpe del disparo en Batalla naval - la casilla se ilumina y rebota un instante al recibir el tiro, antes de la salpicadura o la llama */
.nv-cell.fx-splash,.nv-cell.fx-boom{animation:nvImpact .38s cubic-bezier(.2,1.6,.4,1);z-index:5}
@keyframes nvImpact{0%{transform:scale(1.7);filter:brightness(2.4)}60%{transform:scale(.92)}100%{transform:none;filter:none}}
html[data-fx="off"] .nv-cell.fx-splash,html[data-fx="off"] .nv-cell.fx-boom{animation:none}
/* 0.3.18 (V2, Fase 5.1): iconos dibujados de «Contra la maquina / En este dispositivo / Multijugador» */
.mi{display:inline-grid;place-items:center;width:26px;height:26px;margin-right:8px;border-radius:8px;background:#e8f1ff;color:#0b3d91;vertical-align:-7px;font-style:normal}
.mi svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.900;stroke-linecap:round;stroke-linejoin:round}
html[data-theme="dark"] .mi{background:#1c2c4a;color:#9fc0ff}
/* 0.3.17: en la votacion de STOP, marca verde en las respuestas que estan en el diccionario del juego */
.sp-ok{flex:none;display:inline-grid;place-items:center;width:18px;height:18px;margin-left:4px;border-radius:50%;background:#12824a;color:#fff;font-size:11px;font-weight:900;text-decoration:none}
/* 0.3.15 (V2, Fase 5): animales de Memoria dibujados (SVG) */
.mc-face svg{display:block;width:78%;height:78%;margin:auto}
/* 0.3.12: casilla «Los barcos no pueden tocarse» del menu de Batalla naval */
.nv-check{display:flex;align-items:center;gap:10px;padding:10px 13px;border:2px solid #cfd8e6;border-radius:14px;background:#fff;color:#10213b;font-size:14px;font-weight:800;cursor:pointer}
.nv-check input{width:20px;height:20px;accent-color:#0b3d91}
/* 0.3.11 (V2, Fase 2.2): PANTALLA DE RESULTADO unica (js/result.js). La tarjeta de fin de los juegos sencillos (.game-end-card) usa el mismo dibujo y botones. */
.res-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:18px;background:#091a30b8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:resFade .2s ease-out}
.res-card{width:min(400px,100%);padding:22px 20px 14px;border-radius:26px;background:#fff;color:#10213b;text-align:center;box-shadow:0 24px 80px #07172b66;animation:resPop .28s cubic-bezier(.2,1.5,.4,1)}
.res-ic{width:84px;height:84px;margin:0 auto 6px;display:grid;place-items:center;border-radius:50%;background:#fff6d6}
.res-ic svg{width:58px;height:58px}
.res-card.lose .res-ic{background:#eef1f6}.res-card.draw .res-ic{background:#eef4ff}.res-card.end .res-ic{background:#ffecec}
.res-eyebrow{margin:0 0 4px;color:#d62027;font-size:11px;font-weight:900;letter-spacing:.14em}
.res-card h3{margin:0 0 6px;font-size:25px;line-height:1.15}
.res-card strong{display:block;margin:0 0 4px;color:#0b3d91;font-size:15px}
.res-card small{display:block;color:#5a6880;font-size:13px}
.res-btns{display:grid;gap:8px;margin-top:16px}
.res-btns button{min-height:46px;padding:10px 12px;border:1px solid #dce4ef;border-radius:14px;background:#f5f8fc;color:#203653;font-size:14px;font-weight:850;cursor:pointer}
.res-btns button.res-main{border:0;background:linear-gradient(180deg,#2a7de1,#0b4fb3);color:#fff;font-size:16px;box-shadow:0 4px 0 #083a85}
.res-btns button:active{transform:translateY(2px)}
.res-peek{margin-top:10px;border:0;background:none;color:#5a6880;font-size:13px;font-weight:800;text-decoration:underline;cursor:pointer}
.res-note{min-height:1.2em;margin:4px 0 0;font-size:12.5px;color:#12824a;font-weight:800}
@keyframes resFade{from{opacity:0}to{opacity:1}}
@keyframes resPop{from{transform:scale(.8);opacity:0}to{transform:none;opacity:1}}
.game-end-card .res-ic{margin-bottom:10px}
.game-end-card>p{font-size:11px}.game-end-card>small{font-size:13px}
.game-end-card button{min-height:46px;font-size:14px;border-radius:14px}
.game-end-card #playAgain:not(:disabled){border:0;background:linear-gradient(180deg,#2a7de1,#0b4fb3);color:#fff;font-size:16px;box-shadow:0 4px 0 #083a85}
html[data-theme="dark"] .res-card{background:#16223a;color:#e6edf9}html[data-theme="dark"] .res-card strong{color:#9fc0ff}html[data-theme="dark"] .res-card small,html[data-theme="dark"] .res-peek{color:#93a3bd}
html[data-theme="dark"] .res-btns button{background:#101a2e;border-color:#26344f;color:#e6edf9}
html[data-fx="off"] .res-overlay,html[data-fx="off"] .res-card{animation:none}
/* 0.3.10 (V2): el Sudoku tiene un cuarto boton («Auto», notas automaticas): los cuatro caben en una sola fila */
#gameScreen .mode-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
#gameScreen .mode-row .tool{min-width:0;padding-left:4px;padding-right:4px;font-size:13px;white-space:nowrap}
/* 0.3.9 (V2, Fase 7): POKER Texas Hold'em (js/poker.js) - usa las cartas .bj-card del Blackjack en tres tamanos */
.pk .bj-card{animation:none}
.bj-card.sm{width:30px;height:44px;margin-left:-10px;border-radius:5px}.bj-card.sm b{font-size:12px;left:3px;top:2px}.bj-card.sm i{font-size:15px;margin-top:8px}
.bj-card.md{width:44px;height:64px;margin-left:4px;border-radius:7px}.bj-card.md:first-child{margin-left:0}.bj-card.md b{font-size:15px}.bj-card.md i{font-size:23px}
.pk-table{position:relative;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-areas:"s1 s2 s3" "mid mid mid" ". s0 .";gap:6px 4px;align-items:center;max-width:560px;margin:0 auto;padding:12px 6px;border-radius:26px;background:radial-gradient(ellipse at 50% 40%,#1e8a5f,#0e5c3f 72%);box-shadow:inset 0 0 0 4px #0a4631,inset 0 0 0 6px #c9a24a,0 10px 22px #0004;color:#fff}
.pk-seat{position:relative;display:grid;justify-items:center;gap:3px;min-width:0;padding:5px 3px;border-radius:14px;border:2px solid transparent;font-size:11.5px}
.pk-seat.s0{grid-area:s0}.pk-seat.s1{grid-area:s1}.pk-seat.s2{grid-area:s2}.pk-seat.s3{grid-area:s3}
.pk-seat.turn{border-color:#ffd54a;background:#ffffff18}.pk-seat.out{opacity:.45}.pk-seat.won{border-color:#ffd54a;background:#ffd54a33}
.pk-who{display:grid;justify-items:center;line-height:1.15;max-width:100%}.pk-who span{font-size:22px;line-height:1}
.pk-who b{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pk-who u{text-decoration:none;display:inline-block;width:15px;height:15px;border-radius:50%;background:#fff;color:#10213b;font-size:10px;line-height:15px;text-align:center}
.pk-who i{font-style:normal;color:#ffe082;font-weight:900}
.pk-hole{display:flex;min-height:44px}
.pk-seat em{font-style:normal;padding:1px 7px;border-radius:99px;background:#00000055;font-weight:800;white-space:nowrap}
.pk-seat s{text-decoration:none;padding:1px 8px;border-radius:99px;background:#ffd54a;color:#4a3200;font-weight:900}
.pk-seat small{font-size:11px;font-weight:900;color:#ffe082}
.pk-mid{grid-area:mid;display:grid;justify-items:center;gap:4px;min-width:0}
.pk-board{display:flex;justify-content:center}
.pk-table .pk-board .bj-card.md{width:clamp(30px,10.5vw,44px);height:clamp(44px,15.4vw,64px);margin-left:3px}
.pk-pot{margin:0;font-size:12.5px;font-weight:800}.pk-pot b{color:#ffe082;font-size:16px}
.pk-me{display:flex;align-items:center;justify-content:center;gap:14px;max-width:560px;margin:10px auto 8px;color:#10213b}
.pk-mycards{display:flex}
.pk-me small{display:block;font-size:12px;font-weight:800;opacity:.7}.pk-me b{display:block;font-size:22px;color:#b26a00}.pk-me i{display:inline-block;font-style:normal;margin-top:2px;padding:1px 9px;border-radius:99px;background:#e3f4f0;color:#075246;font-size:12.5px;font-weight:900}
.pk .bj-msg{max-width:560px;margin:0 auto;background:#e8f1ff;color:#0b3d91;font-size:13.5px}.pk .bj-msg.win{background:#ffd54a;color:#4a3200}.pk .bj-msg.lose{background:#8f1016;color:#fff}
.pk-raise{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px}
.pk-raise span{font-size:13px;font-weight:800}
.pk-raise button{padding:9px 13px;border:2px solid #0b3d91;border-radius:11px;background:#fff;color:#0b3d91;font-size:13.5px;font-weight:900;cursor:pointer}
.pk-raise button.all{background:#d62027;border-color:#a3131a;color:#fff}
html[data-theme="dark"] .pk-me{color:#e6edf9}
/* 0.3.8 (V2, Fase 7): BLACKJACK completo (js/blackjack.js) - mesa de fieltro, cartas dibujadas y fichas de juego */
.bj-bank{display:flex;align-items:baseline;justify-content:center;gap:8px;margin:0 auto 8px;color:#10213b;font-size:13px;font-weight:800}
.bj-bank b{font-size:22px;color:#b26a00}.bj-bank b::before{content:"";display:inline-block;width:14px;height:14px;margin-right:5px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe082,#f9a825 60%,#b26a00);vertical-align:-1px}
.bj-bank i{font-style:normal;padding:2px 9px;border-radius:99px;background:#fff0c2;color:#7a5200}
.bj-table{display:grid;gap:10px;max-width:560px;margin:0 auto;padding:14px 10px;border-radius:22px;background:radial-gradient(ellipse at 50% 0,#1e8a5f,#0e5c3f 70%);box-shadow:inset 0 0 0 4px #0a4631,inset 0 0 0 6px #c9a24a,0 10px 22px #0004;color:#fff}
.bj-side{display:grid;justify-items:center;gap:6px}.bj-side small{font-size:12.5px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
.bj-cards{display:flex;justify-content:center;min-height:76px}
.bj-card{position:relative;width:52px;height:76px;margin-left:-16px;border-radius:8px;background:#fff;color:#10213b;box-shadow:0 3px 8px #0007;display:grid;place-items:center;animation:bjIn .28s ease-out}
.bj-card:first-child{margin-left:0}
.bj-card b{position:absolute;left:5px;top:3px;font-size:17px;font-weight:900;line-height:1}.bj-card i{font-style:normal;font-size:28px;line-height:1}
.bj-card.red{color:#d62027}
.bj-card.back{background:repeating-linear-gradient(45deg,#0b3d91 0 6px,#1565c0 6px 12px);box-shadow:inset 0 0 0 3px #fff,0 3px 8px #0007}
.bj-card.ghost{background:#ffffff14;box-shadow:inset 0 0 0 2px #ffffff40;animation:none}
@keyframes bjIn{from{transform:translateY(-24px) rotate(-8deg);opacity:0}to{transform:none;opacity:1}}
.bj-msg{min-height:1.6em;padding:6px 12px;border-radius:12px;background:#00000038;text-align:center;font-weight:900;font-size:14.5px}
.bj-msg.win{background:#ffd54a;color:#4a3200}.bj-msg.lose{background:#8f1016}
.bj-hands{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.bj-hand{display:grid;justify-items:center;gap:4px;padding:6px 8px;border-radius:14px;border:2px solid transparent}
.bj-hand.on{border-color:#ffd54a;background:#ffffff14}
.bj-hand p{display:flex;align-items:center;gap:6px;margin:0;font-size:12.5px}.bj-hand p b{font-size:17px}.bj-hand p span{opacity:.85}
.bj-hand em{font-style:normal;padding:1px 8px;border-radius:99px;background:#fff;color:#10213b;font-weight:900}
.bj-hand.win em,.bj-hand.bj em{background:#ffd54a;color:#4a3200}.bj-hand.lose em,.bj-hand.bust em{background:#8f1016;color:#fff}
.bj-ctrl{display:grid;gap:8px;max-width:560px;margin:10px auto 0}
.bj-row{display:flex;gap:8px;justify-content:center}.bj-row .arc-btn{flex:1 1 0;min-width:0}
.bj-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bj-chips{display:flex;justify-content:center;gap:10px}
.bj-chip{width:58px;height:58px;border-radius:50%;border:5px dashed #fff;color:#fff;font-size:17px;font-weight:900;cursor:pointer;box-shadow:0 4px 0 #0003,inset 0 0 0 3px #0002;transition:transform .1s}
.bj-chip:active{transform:translateY(3px)}.bj-chip:disabled{opacity:.35;cursor:not-allowed}
.bj-chip.c10{background:#1565c0}.bj-chip.c25{background:#2e7d32}.bj-chip.c50{background:#d62027}.bj-chip.c100{background:#10213b}
.bj-hint{margin:0;text-align:center;font-size:13px;opacity:.8}
html[data-theme="dark"] .bj-bank{color:#e6edf9}
html[data-fx="off"] .bj-card{animation:none}
/* 0.3.7: Perfil y Amigos como PAGINA a pantalla completa, con la barra de abajo a la vista (body.tab-page lo pone js/tabbar.js).
   Son las mismas pantallas de siempre (.tut): solo se les quita el fondo oscuro, la tarjeta flotante y la X, y se les deja sitio abajo para la barra. */
body.tab-page #profileScreen,body.tab-page #friendsScreen,body.tab-page #friendsNotifs{align-items:stretch;padding:0 0 calc(62px + var(--sab));background:radial-gradient(ellipse at 50% 0,#fff 0,#f4f7fc 55%,#eaf0f8 100%);-webkit-backdrop-filter:none;backdrop-filter:none}
body.tab-page #profileScreen .tut-card,body.tab-page #friendsScreen .tut-card,body.tab-page #friendsNotifs .tut-card{width:min(760px,100%);height:100%;max-height:none;border-radius:0;background:transparent;box-shadow:none}
body.tab-page #profileScreen .tut-card header,body.tab-page #friendsScreen .tut-card header,body.tab-page #friendsNotifs .tut-card header{padding-top:max(18px,calc(var(--sat) + 10px))}
body.tab-page #profileScreen .tut-x,body.tab-page #friendsScreen .tut-x,body.tab-page #friendsNotifs .tut-x{display:none}
body.tab-page #profileScreen .tut-body,body.tab-page #friendsScreen .tut-body,body.tab-page #friendsNotifs .tut-body{padding-bottom:22px}
body.tab-page .tab-bar{z-index:9100}
html[data-theme="dark"] body.tab-page #profileScreen,html[data-theme="dark"] body.tab-page #friendsScreen,html[data-theme="dark"] body.tab-page #friendsNotifs{background:#0d1626}
/* 0.3.6: insignia TEMPORAL «V2» junto al logo, para no confundir esta version con la V1 mientras conviven */
.v2-chip{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:8px;background:#d62027;color:#fff;-webkit-text-fill-color:#fff;font-style:normal;font-size:.62em;font-weight:900;letter-spacing:.04em;vertical-align:middle;line-height:1.5}
/* 0.3.4 (V2, Fase 5): fichas de Mahjong dibujadas (SVG) en vez de emojis */
.mz-t span svg{display:block;width:90%;height:90%}
.mz-sample span svg{display:block;width:82%;height:82%}
.mz-board.wait .mz-t span svg{visibility:hidden}
/* 0.3.3 (V2): selector «Nivel de la maquina» en Elige tu partida, y tarjeta del reto del dia en la lista del arcade */
.ai-levels{display:grid;grid-template-columns:1fr repeat(3,auto);align-items:center;gap:6px;margin:0 0 10px;padding:8px 10px 8px 14px;border:2px solid #dce4ef;border-radius:14px;background:#fff;color:#203653;text-align:left}
.ai-levels span{font-size:13.5px;font-weight:800}
.ai-levels button{padding:7px 11px;border:2px solid #dce4ef;border-radius:10px;background:#f6f9fd;color:#203653;font-size:12.5px;font-weight:800;cursor:pointer}
.ai-levels button.on{border-color:#0b3d91;background:#0b3d91;color:#fff}
.daily-arc{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin:0 0 4px;padding:12px 14px;border:0;border-radius:16px;background:linear-gradient(100deg,#0b3d91,#1565c0);color:#fff;text-align:left;cursor:pointer;box-shadow:0 8px 18px #0b3d9133}
.daily-arc span{font-size:26px;line-height:1}.daily-arc b{display:block;font-size:14.5px}.daily-arc small{display:block;font-size:12.5px;opacity:.9}.daily-arc i{font-style:normal;font-size:22px;opacity:.8}
.daily-arc.done{background:linear-gradient(100deg,#12824a,#1ea562);box-shadow:0 8px 18px #12824a33}
html[data-theme="dark"] .ai-levels{background:#16223a;border-color:#26344f;color:#e6edf9}html[data-theme="dark"] .ai-levels button{background:#101a2e;border-color:#26344f;color:#e6edf9}html[data-theme="dark"] .ai-levels button.on{background:#2a7de1;border-color:#2a7de1}
/* 0.3.2 (V2, Fases 2 y 3).
   FASE 3 - lista del arcade por grupos, fila «Continuar» y etiquetas en las tarjetas.
   FASE 2 - en telefono las partidas van de borde a borde (sin la tarjeta blanca con margen) y con cabecera fina; el texto pequeno sube a 12-13 px. */
.games-group-h{display:flex;align-items:center;gap:10px;margin:22px 2px 10px;font-size:16px;font-weight:900;color:#10213b}
.games-group-h::after{content:"";flex:1;height:2px;border-radius:2px;background:#dce4ef}
.gc-tags{display:flex;flex-wrap:nowrap;gap:4px;margin-top:8px;font-style:normal;max-width:100%;overflow:hidden}
.gc-tags i{font-style:normal;padding:3px 7px;border-radius:99px;background:#edf4ff;color:#0b3d91;font-size:11px;font-weight:800;white-space:nowrap}
.game-card.has-art .gc-tags i{background:rgba(255,255,255,.22);color:#fff}
.game-card.has-art small{font-size:12px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.games-recent{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.recent-card{position:relative;isolation:isolate;overflow:hidden;height:76px;display:flex;align-items:flex-end;padding:8px 10px;border:0;border-radius:16px;background:#10213b;color:#fff;text-align:left;cursor:pointer;box-shadow:0 8px 18px #10213b26;transition:transform .15s}
.recent-card:active{transform:scale(.96)}
.rc-art{position:absolute;inset:0;z-index:-2;display:grid;place-items:center;font-size:30px}.rc-art svg{display:block;width:100%;height:100%}
.recent-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,18,36,0) 15%,rgba(8,18,36,.88) 100%)}
.recent-card b{font-size:12.5px;line-height:1.15;text-shadow:0 1px 3px #000a}
html[data-theme="dark"] .games-group-h{color:#e6edf9}html[data-theme="dark"] .games-group-h::after{background:#26344f}
.mode-choices small{font-size:12.5px;color:#5a6880}.mode-choices strong{font-size:14.5px}
.sc-switch small{font-size:12.5px}
@media(max-width:700px){
 .mini-games-screen[data-lv="play"]{padding-left:0;padding-right:0}
 .mini-games-screen[data-lv="play"] .arc-top{margin-left:10px;margin-right:10px}
 .mini-games-screen[data-lv="play"] #miniGameStage .mini-game{width:100%;padding:10px 8px 16px;border-left:0;border-right:0;border-radius:0;box-shadow:none}
 #miniGameStage .dos-head{margin-bottom:8px;align-items:center}
 #miniGameStage .dos-head p{display:none}
 #miniGameStage .dos-head h2,#miniGameStage .mini-game-head h2{font-size:18px;letter-spacing:0}
 #miniGameStage .mini-game-head{margin-bottom:8px}
}
/* 0.3.1 (v2, Fase 1): BARRA DE ABAJO (js/tabbar.js) y portada mas limpia.
   body.v2nav lo pone tabbar.js al arrancar: esconde el menu de hamburguesa y lo que paso a la barra o a Perfil (Amigos, Rankings, Estadisticas, tarjeta de nivel).
   body.has-tabbar = la barra esta a la vista: deja sitio abajo para que no tape nada. */
.tab-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fffffff2;border-top:1px solid #d9e1ef;box-shadow:0 -6px 18px #0b3d9114;padding-bottom:var(--sab);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.tab-bar.hidden{display:none}
.tb-in{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;max-width:560px;margin:0 auto}   /* 0.3.38: una columna por pestana, sean 4 o 5 */
.tab-bar button{display:grid;justify-items:center;gap:2px;padding:8px 2px 7px;border:0;background:none;color:#6a7790;font-size:11.5px;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.tab-bar button b{font-weight:800}
.tb-ic{position:relative;display:grid;place-items:center;width:44px;height:28px;border-radius:99px;transition:background .15s,transform .15s}
.tb-ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.tab-bar button.on{color:#d62027}.tab-bar button.on .tb-ic{background:#d6202718}
.tab-bar button:active .tb-ic{transform:scale(.9)}
.tb-badge{position:absolute;right:2px;top:-3px;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:#d62027;color:#fff;font:800 11px/17px inherit;font-style:normal;text-align:center}
.tb-badge.hidden{display:none}
html[data-theme="dark"] .tab-bar{background:#101a2eee;border-top-color:#26344f}
html[data-theme="dark"] .tab-bar button{color:#93a3bd}html[data-theme="dark"] .tab-bar button.on{color:#ff6b70}
body.has-tabbar .home-layout,body.has-tabbar .mini-games-shell{padding-bottom:calc(76px + var(--sab))}
body.v2nav .home-more-wrap,body.v2nav #homeFriends,body.v2nav #homeRank,body.v2nav #homeStats,body.v2nav #homeScreen .level-card{display:none!important}
body.v2nav .soon-row{grid-template-columns:1fr!important}
body.v2nav #homeMulti{grid-column:1/-1}
.pf-more-h{margin:16px 2px 6px;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;opacity:.65}
.pf-more{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.pf-more button{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 10px;padding:10px 12px;border:1px solid #dce4ef;border-radius:14px;background:#fff;color:#203653;text-align:left;cursor:pointer}
.pf-more button span{grid-row:1/3;font-size:22px;line-height:1}.pf-more button b{font-size:13.5px}.pf-more button small{font-size:12px;color:#6a7790}
html[data-theme="dark"] .pf-more button{background:#16223a;border-color:#26344f;color:#e6edf9}html[data-theme="dark"] .pf-more button small{color:#93a3bd}
/* 0.2.101: STOP CLASICO (js/stop-clasico.js) - la hoja de papel: 6 columnas + Letra + Total, una fila por ronda.
   En pantallas anchas se ve la tabla completa; en un telefono de pie la fila en juego se abre hacia abajo (una casilla por linea) y las rondas pasadas se resumen. */
.sc-switch{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin:0 0 10px;padding:12px 14px;border:2px solid #dce4ef;border-radius:14px;background:#fff;color:#203653;cursor:pointer;text-align:left}
.sc-switch input{position:absolute;opacity:0;pointer-events:none}
.sc-switch b{display:block;font-size:14px}.sc-switch small{display:block;font-size:11px;color:#7c8ba0;font-weight:600}
.sc-switch i{width:46px;height:26px;border-radius:99px;background:#c9d3e0;position:relative;transition:background .2s}
.sc-switch i::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0005;transition:transform .2s}
.sc-switch.on{border-color:#d62027;background:#fff5f5}.sc-switch.on i{background:#d62027}.sc-switch.on i::after{transform:translateX(20px)}
.sc{position:relative}
.sc-sheet{margin:10px auto;max-width:980px;padding:10px;background:#fff;color:#111;border:3px solid #111;border-radius:10px;outline:4px dotted #111;outline-offset:3px;box-shadow:0 8px 18px #0003}
.sc-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:0 2px 8px;font-size:18px}
.sc-title b{font-weight:900}.sc-title em{font-style:normal;background:#111;color:#fff;padding:1px 8px;border-radius:6px;letter-spacing:.08em}.sc-title span{font-size:12px;font-weight:800;opacity:.7}
.sc-row{display:grid;grid-template-columns:54px repeat(6,minmax(0,1fr)) 78px;border:2px solid #111;border-top:0}
.sc-row.sc-head{border-top:2px solid #111;font-weight:900;font-size:12.5px;text-align:center}
.sc-row>*{min-width:0;min-height:38px;display:grid;place-items:center;padding:3px 4px;border-right:2px solid #111;font-size:13px;text-align:center;overflow-wrap:anywhere}
.sc-row>*:last-child{border-right:0}
.sc-row .sc-sum{display:none}
.sc-l{font-size:20px;font-weight:900}
.sc-row.cur{background:#fffbe6}.sc-row.cur .sc-l{color:#d62027}
.sc-c::before{display:none}
.sc-c input{width:100%;min-width:0;height:32px;padding:2px 6px;border:0;border-bottom:2px dashed #999;background:transparent;color:#111;font:inherit;font-weight:700;text-align:center;border-radius:0;-webkit-user-select:text;user-select:text}
.sc-c input:focus{outline:none;border-bottom-color:#d62027;background:#fff}
.sc-c input:disabled{opacity:.6;border-bottom-style:solid}
.sc-t{font-weight:900;font-size:16px}.sc-t.neg{color:#d62027}
.sc-stop{width:100%;min-height:34px;padding:2px 4px;border:0;border-radius:8px;background:linear-gradient(180deg,#e0303a,#a3131a);color:#fff;font-weight:900;font-size:13px;box-shadow:0 3px 0 #7c0d13;cursor:pointer}
.sc-stop:disabled{background:#c9c9c9;box-shadow:0 3px 0 #9a9a9a;color:#fff;cursor:not-allowed}
.sc-stop:not(:disabled){animation:scPulse .9s ease-in-out infinite alternate}
@keyframes scPulse{to{transform:scale(1.06)}}
.sc-box{max-width:560px;margin:10px auto;padding:14px;border-radius:16px;background:#fff;color:#203653;border:2px solid #dce4ef;text-align:center}
.sc-box h3{margin:0 0 10px;font-size:17px}
.sc-rps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sc-rps button{display:grid;gap:2px;justify-items:center;padding:12px 4px;border:2px solid #dce4ef;border-radius:14px;background:#f6f9fd;color:#203653;cursor:pointer}
.sc-rps button span{font-size:40px;line-height:1}.sc-rps button b{font-size:12px}
.sc-rps button:active{transform:scale(.94);border-color:#d62027}
.sc-duel{display:flex;align-items:center;justify-content:center;gap:14px;margin:6px 0}
.sc-duel div{display:grid;justify-items:center;gap:2px;padding:10px 14px;border-radius:14px;border:2px solid #dce4ef;min-width:96px}
.sc-duel div.win{border-color:#f0b429;background:#fff8dc}
.sc-duel i{font-style:normal;font-size:20px}.sc-duel span{font-size:44px;line-height:1;animation:scPop .4s}.sc-duel em{font-style:normal;font-weight:900;opacity:.6}
.sc-dice{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
.sc-dice li{display:grid;grid-template-columns:30px 28px 1fr auto;align-items:center;gap:8px;padding:8px 10px;border:2px solid #dce4ef;border-radius:12px;text-align:left}
.sc-dice li.me{box-shadow:0 0 0 2px #1976d244}.sc-dice em{font-style:normal;font-weight:900;color:#d62027}.sc-dice i{font-style:normal;font-size:18px}.sc-dice span{font-size:20px;font-weight:900}
.sc-keys{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;max-width:340px;margin:0 auto 10px}
.sc-keys button{aspect-ratio:1;border:2px solid #dce4ef;border-radius:12px;background:#f6f9fd;color:#203653;font-size:20px;font-weight:900;cursor:pointer}
.sc-keys button.on{background:#d62027;border-color:#a3131a;color:#fff}
.sc-keys button:disabled{opacity:.35;text-decoration:line-through;cursor:not-allowed}
.sc-go{display:grid;justify-items:center;gap:6px;padding-top:6px;border-top:2px dashed #dce4ef}.sc-go p{margin:0;font-weight:800}
.sc-stopmsg{background:#8f1016!important;color:#fff!important}
.sc-fx{position:fixed;inset:0;z-index:80;display:grid;place-items:center;pointer-events:none}
.sc-fx b{font-size:clamp(54px,17vw,150px);font-weight:900;letter-spacing:.02em;color:#fff;-webkit-text-stroke:3px #111;text-shadow:0 6px 0 #111,0 0 40px #000a;transform:rotate(-6deg)}
.sc-fx.go b{color:#3ddc84;animation:scPop .5s cubic-bezier(.2,1.6,.4,1) both}
.sc-fx.halt{animation:scFade 1.9s forwards}.sc-fx.halt b{color:#ff3b3b;animation:scShake .5s both}
@keyframes scPop{from{transform:scale(.2) rotate(-20deg);opacity:0}to{transform:scale(1) rotate(-6deg);opacity:1}}
@keyframes scShake{0%{transform:scale(2.2) rotate(-6deg);opacity:0}40%{transform:scale(1) rotate(-6deg);opacity:1}55%{transform:translateX(-12px) rotate(-8deg)}70%{transform:translateX(12px) rotate(-4deg)}100%{transform:rotate(-6deg)}}
@keyframes scFade{0%,70%{opacity:1}100%{opacity:0}}
@media(max-width:699px){
 .sc-row.sc-head,.sc-row.empty{display:none}
 .sc-row{grid-template-columns:44px minmax(0,1fr) 62px;border-top:2px solid #111;margin-top:-2px}
 .sc-row.past .sc-c{display:none}
 .sc-row.past .sc-sum{display:block;font-style:normal;font-size:12px;text-align:left;padding:6px 8px;place-self:center stretch}
 .sc-row.cur{grid-template-columns:1fr}
 .sc-row.cur>*{border-right:0;border-bottom:2px solid #111}.sc-row.cur>*:last-child{border-bottom:0}
 .sc-row.cur .sc-l{font-size:26px;min-height:44px}
 .sc-row.cur .sc-c{grid-template-columns:118px minmax(0,1fr);place-items:center stretch;gap:6px;min-height:46px;padding:3px 8px}
 .sc-row.cur .sc-c::before{content:attr(data-l);display:block;font-weight:900;font-size:13px;text-align:left}
 .sc-row.cur .sc-c input{text-align:left;height:36px;font-size:16px}
 .sc-row.cur .sc-t{padding:8px}.sc-stop{min-height:46px;font-size:20px}
}
html[data-fx="off"] .sc-fx b,html[data-fx="off"] .sc-stop{animation:none!important}
/* 0.2.100: DUELO MAHJONG nuevo (js/mahjong.js) - carrera: cada jugador con su tablero de 80 fichas en piramide de 3 pisos */
.mz-menu{display:grid;gap:12px;max-width:520px;margin:0 auto}
.mz-sample{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center;padding:12px 10px;border-radius:14px;background:linear-gradient(160deg,#0f6b5a,#0a4a3f);color:#fff}
.mz-sample span{display:grid;place-items:center;width:34px;height:42px;border-radius:6px;background:linear-gradient(160deg,#fffdf4,#ece4cc);box-shadow:2px 3px 0 #b9ae8e;font-size:20px;line-height:1}
.mz-sample i{font-style:normal;font-weight:900;opacity:.8}.mz-sample small{flex-basis:100%;text-align:center;font-weight:800;opacity:.9}
.mz-top{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:520px;margin:0 auto 8px}
.mz-p{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:3px 6px;padding:6px 10px;border-radius:14px;background:#fff;color:#10213b;border:2px solid #dbe3ef;font-size:12.5px;font-weight:800;min-width:0}
.mz-p.me{border-color:#00796b;box-shadow:0 0 0 2px #00796b33}
.mz-p span{font-size:18px;line-height:1}.mz-p b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mz-p i{font-style:normal;opacity:.75;white-space:nowrap}
.mz-p u{grid-column:1/-1;display:block;height:7px;border-radius:9px;background:#e3e9f2;overflow:hidden;text-decoration:none}
.mz-p s{display:block;height:100%;width:0;background:linear-gradient(90deg,#26a69a,#00796b);transition:width .3s;text-decoration:none}
.mz-p:not(.me) s{background:linear-gradient(90deg,#ff8a65,#d62027)}
.mz-alert{min-height:1.5em;margin:0 auto 8px;max-width:520px;padding:7px 12px;border-radius:12px;background:#e3f4f0;color:#075246;font-weight:900;font-size:14px;text-align:center}
.mz-alert.danger{background:#8f1016;color:#fff}.mz-alert.win{background:#12824a;color:#fff}
.mz-wrap{position:relative;max-width:520px;margin:0 auto;padding:16px 8px 10px 18px;border-radius:18px;background:linear-gradient(160deg,#0f6b5a,#0a4a3f);box-shadow:inset 0 0 0 3px #083a31,0 8px 18px #0005}
.mz-board{position:relative;aspect-ratio:8/7.5}
.mz-t{position:absolute;width:12.5%;height:16.667%;padding:0;margin:0;border:0;background:none;transform:translate(calc(var(--z)*-5px),calc(var(--z)*-6px));cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:opacity .22s}
.mz-t span{position:absolute;inset:1px 2px 3px 1px;display:grid;place-items:center;border-radius:6px;border:2px solid transparent;background:linear-gradient(160deg,#fffdf4,#ece4cc);box-shadow:2px 3px 0 #b9ae8e,3px 5px 5px #0006;font-size:clamp(15px,5.6vw,27px);line-height:1;transition:transform .1s}
.mz-t.blocked{cursor:not-allowed}.mz-t.blocked span{filter:brightness(.6) saturate(.55)}
.mz-t.free span{border-color:#ffe98a}
.mz-t.sel span{border-color:#ff9800;box-shadow:0 0 0 2px #ff9800,0 0 14px #ffd54a,2px 3px 0 #b9ae8e;transform:translateY(-3px)}
.mz-t.gone{opacity:0;pointer-events:none}
.mz-t.miss span{border-color:#d62027;animation:mzShake .4s}
@keyframes mzShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.mz-board.wait .mz-t span{font-size:0}
.mz-board.locked{filter:grayscale(.7) brightness(.75);pointer-events:none}
.mz-board.over{pointer-events:none;opacity:.85}
.mz-lock,.mz-count{position:absolute;inset:0;z-index:60;display:grid;place-content:center;justify-items:center;color:#fff;font-weight:900;pointer-events:none;text-shadow:0 2px 8px #000;border-radius:18px}
.mz-lock{background:#7a0c10a6}.mz-lock span{font-size:38px;line-height:1}.mz-lock b{font-size:56px;line-height:1}.mz-lock small{font-size:14px}
.mz-count{font-size:96px}
.mz-lock.hidden,.mz-count.hidden{display:none}
.mz-clock{text-align:center;font-weight:900;margin:8px 0 4px}
.mz-ctrl{display:grid;justify-items:center;gap:6px}.mz-hint{font-size:12.5px;opacity:.8;text-align:center;margin:0}
html[data-fx="off"] .mz-t.miss span{animation:none}
/* 0.2.97: BATALLA NAVAL nueva (js/naval.js) - maletin azul con letras y numeros, siluetas, salpicadura y llamas */
.nv{--nv-sea1:#2aa3d6;--nv-sea2:#0f6fae;--nv-line:#7fd4f5;--nv-case:#15254a;--nv-red:#d62027}
.nv-menu{display:grid;gap:12px;max-width:520px;margin:0 auto}
.nv-modes{display:grid;gap:8px}
.nv-modes button{display:grid;gap:2px;text-align:left;padding:11px 13px;border-radius:14px;border:2px solid #cfd8e6;background:#fff;color:#10213b;cursor:pointer}
.nv-modes button b{display:block;font-size:15px}.nv-modes button small{display:block;font-size:12px;opacity:.75}
.nv-modes button.on{border-color:#0b3d91;box-shadow:0 0 0 2px #0b3d91}
.nv-fleetrow{display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:center;padding:10px;border-radius:14px;background:linear-gradient(180deg,var(--nv-sea1),var(--nv-sea2))}
.nv-fleetrow span{display:grid;justify-items:center;gap:1px}.nv-fleetrow svg{height:22px;width:auto;display:block}.nv-fleetrow small{font-size:10.5px;color:#fff;font-weight:800}
.nv-seats{display:flex;gap:8px;justify-content:center;margin:0 0 8px}
.nv-seat{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#fff;color:#10213b;border:2px solid #dbe3ef;font-size:12.5px;font-weight:800;min-width:0}
.nv-seat span{font-size:17px;line-height:1}.nv-seat b,.nv-seat i{display:inline;font-style:normal;font-weight:800}.nv-seat i{opacity:.7;font-size:11.5px;white-space:nowrap}
.nv-seat.turn{border-color:var(--nv-red);box-shadow:0 0 0 3px #ffd54a}
.nv-alert{min-height:1.5em;margin:0 auto 8px;max-width:560px;padding:7px 12px;border-radius:12px;background:#e8f1ff;color:#0b3d91;font-weight:900;font-size:14px;text-align:center}
.nv-alert:empty{display:none}
.nv-alert.danger{background:#d62027;color:#fff;animation:nvAlarm .7s ease-in-out infinite alternate}
.nv-alert.win{background:#1f9d55;color:#fff}
@keyframes nvAlarm{to{background:#8f1016;box-shadow:0 0 0 4px #ffb3b3}}
.nv-tabs{display:flex;gap:6px;justify-content:center;margin:0 0 8px}
.nv-tabs button{padding:7px 14px;border-radius:999px;border:2px solid #cfd8e6;background:#fff;color:#10213b;font-weight:800;font-size:12.5px;cursor:pointer}
.nv-tabs button.on{background:#0b3d91;border-color:#0b3d91;color:#fff}
.nv-tabs.hidden,.nv-case.hidden,.nv-pass.hidden{display:none}
.nv-case{width:min(100%,560px);margin:0 auto;padding:10px;border-radius:18px;background:linear-gradient(160deg,#22386b,var(--nv-case));border:3px solid #0a1630;box-shadow:inset 0 0 0 3px #3b5596,0 10px 22px #0006;box-sizing:border-box}
.nv-case[data-b="mine"]{background:linear-gradient(160deg,#5d6676,#343c4b);box-shadow:inset 0 0 0 3px #8792a6,0 10px 22px #0006}
.nv-board{display:grid;grid-template-columns:1.25em minmax(0,1fr);grid-template-rows:1.25em auto;gap:3px;font-size:clamp(10px,3.1vw,14px)}
.nv-cols,.nv-rows{display:grid;color:#fff;font-weight:900;text-align:center}
.nv-cols{grid-template-columns:repeat(var(--n),minmax(0,1fr));align-items:center}.nv-rows{grid-template-rows:repeat(var(--n),minmax(0,1fr));align-items:center}
.nv-cols i,.nv-rows i{font-style:normal;line-height:1}
.nv-sea{position:relative;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));aspect-ratio:1;border-radius:8px;overflow:hidden;background:linear-gradient(180deg,var(--nv-sea1),var(--nv-sea2));box-shadow:inset 0 0 0 2px #0a3d63}
.nv-cell{position:relative;padding:0;margin:0;border:0;border-right:1px solid #ffffff47;border-bottom:1px solid #ffffff47;background:radial-gradient(circle,#ffffff2e 0 16%,transparent 18%);cursor:pointer;min-width:0;min-height:0;-webkit-tap-highlight-color:transparent}
.nv-case[data-b="mine"] .nv-cell{cursor:default}
.nv-cell.sel{background:radial-gradient(circle,#ffd54a 0 22%,transparent 24%),#ffffff3b;box-shadow:inset 0 0 0 3px #ffd54a;z-index:3}
.nv-cell.sel::after{content:"";position:absolute;inset:14%;border:2px solid #ffd54a;border-radius:50%;animation:nvAim .8s ease-in-out infinite alternate}
@keyframes nvAim{to{transform:scale(1.25);opacity:.4}}
.nv-cell.miss{background:radial-gradient(circle,#fff 0 20%,#ffffff66 22% 38%,transparent 40%)}
.nv-cell.hit{background:radial-gradient(circle,#ffd54a 0 12%,#ff6a00 34%,#8f1016 72%);z-index:2}
.nv-cell.hit::after{content:"🔥";position:absolute;inset:0;display:grid;place-items:center;font-size:calc(1em + 6px);line-height:1;animation:nvFlame .45s ease-in-out infinite alternate;transform-origin:50% 90%}
@keyframes nvFlame{from{transform:scale(.92) rotate(-5deg)}to{transform:scale(1.14) rotate(5deg);filter:brightness(1.25)}}
.nv-cell.scan2{background:radial-gradient(circle,#ff3b3b 0 22%,#ff3b3b55 24% 46%,transparent 48%);animation:nvBlip 1s ease-in-out infinite alternate}
.nv-cell.scan1{background:#0a3d6399}
@keyframes nvBlip{to{filter:brightness(1.6)}}
.nv-cell.fx-splash::before,.nv-cell.fx-boom::before{content:"";position:absolute;left:50%;top:50%;width:100%;height:100%;border-radius:50%;pointer-events:none;z-index:6}
.nv-cell.fx-splash::before{border:3px solid #fff;animation:nvRing .9s ease-out forwards}
.nv-cell.fx-splash::after{content:"💦";position:absolute;inset:0;display:grid;place-items:center;font-size:calc(1em + 10px);line-height:1;z-index:7;animation:nvDrop .9s ease-out forwards}
.nv-cell.fx-boom::before{background:radial-gradient(circle,#fff 0,#ffd54a 30%,#ff6a00 60%,transparent 72%);animation:nvBoom .8s ease-out forwards}
@keyframes nvRing{0%{transform:translate(-50%,-50%) scale(.2);opacity:1}100%{transform:translate(-50%,-50%) scale(2.6);opacity:0}}
@keyframes nvDrop{0%{transform:translateY(20%) scale(.4);opacity:0}35%{transform:translateY(-55%) scale(1.5);opacity:1}100%{transform:translateY(10%) scale(.8);opacity:0}}
@keyframes nvBoom{0%{transform:translate(-50%,-50%) scale(.2);opacity:1}60%{transform:translate(-50%,-50%) scale(3);opacity:.9}100%{transform:translate(-50%,-50%) scale(3.6);opacity:0}}
.nv-ships{position:absolute;inset:0;pointer-events:none;z-index:1}
.nv-ship{position:absolute;box-sizing:border-box;filter:drop-shadow(0 2px 2px #0007)}
.nv-ship svg{position:absolute;left:4%;top:6%;width:92%;height:88%;display:block}
.nv-ship.sunk{opacity:.55;filter:grayscale(.7) drop-shadow(0 2px 2px #0007)}
.nv-ship.pick{outline:3px dashed #ffd54a;outline-offset:-3px;border-radius:8px;background:#ffd54a33}
/* 0.2.98: al colocar la flota los barcos se arrastran (el mar no deja que la página se deslice) y cada uno lleva su botón de girar en la esquina */
.nv-case.setup .nv-sea{touch-action:none}
.nv-case.setup .nv-cell{cursor:grab}
.nv-rot{position:absolute;right:1px;top:1px;width:clamp(17px,5vw,24px);height:clamp(17px,5vw,24px);padding:0;border:2px solid #fff;border-radius:50%;background:#ffd54a;color:#1c2a3f;font:900 clamp(11px,3.2vw,15px)/1 inherit;display:grid;place-items:center;pointer-events:auto;cursor:pointer;z-index:4;box-shadow:0 1px 3px #0009;touch-action:none}
.nv-rot:active{transform:scale(.88) rotate(90deg)}
.nv-pass{max-width:460px;margin:10px auto;padding:22px 16px;border-radius:18px;background:#fff;color:#10213b;text-align:center;display:grid;gap:8px;justify-items:center}
.nv-pass span{font-size:44px;line-height:1}.nv-pass h3{margin:0}.nv-pass p{margin:0;font-size:14px}.nv-pass b{display:inline}
.nv-ctrl{max-width:560px;margin:10px auto 0;display:grid;gap:8px}
.nv-row{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}
.nv .ghost{background:#fff;color:#10213b;border:2px solid #9aa9c0;box-shadow:none}
.nv .arc-btn:disabled{opacity:.5;cursor:default}
.nv-count{display:flex;gap:5px}.nv-count i{width:14px;height:14px;border-radius:50%;border:2px solid #9aa9c0;background:#fff}.nv-count i.on{background:var(--nv-red);border-color:var(--nv-red)}
.nv-fire{flex:1;min-width:150px;background:linear-gradient(180deg,#f0453a,#b3161b)}
.nv-abs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.nv-ab{position:relative;display:grid;justify-items:center;gap:1px;padding:6px 2px;border-radius:12px;border:2px solid #cfd8e6;background:#fff;color:#10213b;cursor:pointer;min-width:0}
.nv-ab span{font-size:20px;line-height:1}.nv-ab b{display:block;font-size:10px;font-weight:800;line-height:1.1;text-align:center}
.nv-ab i{position:absolute;top:-6px;right:-4px;padding:1px 5px;border-radius:999px;background:#10213b;color:#fff;font-size:10px;font-style:normal;font-weight:800}
.nv-ab.on{border-color:var(--nv-red);box-shadow:0 0 0 3px var(--nv-red)}
.nv-ab:disabled{opacity:.45;cursor:default}
.nv-hint{margin:0;text-align:center;font-size:12.5px;opacity:.85}
.nv-msg{max-width:560px;margin:8px auto 0;text-align:center;font-weight:800;font-size:14px;min-height:1.4em}
html[data-fx="off"] .nv-cell::before,html[data-fx="off"] .nv-cell::after,html[data-fx="off"] .nv-alert{animation:none!important}
@media(prefers-reduced-motion:reduce){.nv-cell::before,.nv-cell::after,.nv-alert{animation:none!important}}
/* 0.2.96: (1) nada de la app se puede seleccionar ni copiar (en iPhone ya no sale el menu al dejar el dedo); solo las casillas de escribir.
   (2) en pantallas anchas el banner del juego ocupa todo el ancho de la barra. (3) los botones de SUDOMI responden al pasar y al tocar. */
html,body{-webkit-touch-callout:none}
body,body *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea,[contenteditable="true"]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
img,svg{-webkit-user-drag:none}
@media(min-width:700px){
 #miniGamesHub .mode-picker.arc-plain{width:100%;max-width:none}
 #miniGamesHub .mode-picker.arc-plain .arc-banner{height:180px}
 .mode-picker.arc-plain .arc-banner-name{left:24px;bottom:18px}
 .mode-picker.arc-plain .arc-banner-name b{font-size:46px}
 .mode-picker.arc-plain .mode-choices,.mode-picker.arc-plain .gt-link{max-width:560px;margin-left:auto;margin-right:auto}
}
#homeScreen button,#gameScreen .keypad button,#gameScreen .tool,#gameScreen .icon-btn,#gameScreen .game-brand,#modal .modal-card button{transition:transform .13s ease,filter .13s ease,box-shadow .13s ease}
@media(hover:hover){
 #homeScreen button:hover,#gameScreen .keypad button:hover:not(:disabled),#gameScreen .tool:hover,#gameScreen .icon-btn:hover,#modal .modal-card button:hover{transform:translateY(-2px);filter:brightness(1.06)}
}
#homeScreen button:active,#gameScreen .tool:active,#gameScreen .icon-btn:active,#gameScreen .game-brand:active,#modal .modal-card button:active{transform:scale(.93);filter:brightness(.97)}
#gameScreen .keypad button:active:not(:disabled){animation:sdKey .22s ease-out}
#gameScreen .tool:active,#gameScreen .icon-btn:active{animation:sdTap .25s ease-out}
@keyframes sdKey{0%{transform:scale(.84)}60%{transform:scale(1.1)}100%{transform:scale(1)}}
@keyframes sdTap{0%{transform:scale(.88) rotate(-4deg)}60%{transform:scale(1.06) rotate(3deg)}100%{transform:scale(1)}}
html[data-fx="off"] #homeScreen button,html[data-fx="off"] #gameScreen button,html[data-fx="off"] #modal button{transition:none;animation:none}
@media(prefers-reduced-motion:reduce){#homeScreen button,#gameScreen button,#modal button{transition:none!important;animation:none!important}}
/* 0.2.95: INTERFAZ DEL ARCADE - barra (casa/atras, logo, luna, foto), banner por juego, opciones con animacion, adornos de fondo por estilo */
.arc-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.arc-gone{display:none!important}
.mini-games-screen{position:relative;overflow:hidden}
.mini-games-shell{position:relative;z-index:1}
.mini-games-header.arc-top{gap:8px;align-items:center;margin-bottom:16px;padding-bottom:12px}
.arc-top .arc-nav{flex:none;width:46px;height:46px;padding:0;justify-content:center;border-radius:14px;color:#0b3d91}
.arc-top .arc-nav svg{width:26px;height:26px;display:block}
.arc-top .arc-nav:first-letter{font-size:inherit;line-height:inherit}
.arc-top .arc-logo{flex:1;min-width:0;height:46px;padding:2px 8px;border:1px solid #dce4ef;border-radius:14px;background:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 12px #183b670b}
.arc-top .arc-logo svg{height:40px;width:auto;max-width:100%;display:block}
.arc-top .arc-logo:active{transform:scale(.97)}
.arc-top .games-brand-mark{display:none!important}
.arc-top .theme-toggle{order:2;flex:none}
.arc-top .prof-chip{order:3;flex:none;margin-left:0;width:46px;height:46px;padding:0;border-radius:50%;justify-content:center;overflow:hidden}
.arc-top .prof-chip b{display:none}
.arc-top .prof-chip span{font-size:26px;line-height:1;display:grid;place-items:center}
.arc-top .prof-chip .av-dragon{width:42px;height:42px}
.mode-back{display:none!important}
.mode-picker:not(.arc-done)>.mode-game-icon,.mode-picker:not(.arc-done)>p,.mode-picker:not(.arc-done)>h2{visibility:hidden}
.mode-picker.arc-plain{margin-top:6px;padding:0;border:0;background:none;box-shadow:none;color:inherit}
.arc-banner{position:relative;height:118px;margin:0 0 14px;border-radius:20px;overflow:hidden;background:var(--bn);border:3px solid #fff;box-shadow:0 10px 24px #0004;text-align:left}
.arc-banner-art{position:absolute;inset:0}
.arc-banner-art svg{width:100%;height:100%;display:block}
.arc-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bn) 0,color-mix(in srgb,var(--bn) 78%,transparent) 42%,transparent 78%),linear-gradient(0deg,#0007,transparent 55%)}
.arc-banner-name{position:absolute;left:14px;right:14px;bottom:10px;z-index:1;color:#fff}
.arc-banner-name small{display:block;font-size:10px;font-weight:900;letter-spacing:2px;opacity:.95;margin-bottom:2px;color:#fff}
.arc-banner-name b{display:block;font-size:clamp(24px,7.4vw,34px);line-height:1;font-weight:900;font-style:italic;letter-spacing:.5px;text-transform:uppercase;text-shadow:0 2px 0 #0008,0 0 14px #0006;-webkit-text-stroke:1px #0005}
.mode-picker:not(.arc-plain) .arc-banner{height:84px}
.mode-picker.arc-plain{width:100%;max-width:460px;box-sizing:border-box}
.mode-picker.arc-plain .mode-choices{grid-template-columns:minmax(0,1fr)}
.mode-picker.arc-plain .mode-choices>*{box-sizing:border-box;min-width:0;max-width:100%}
.mode-picker.arc-plain .mc-join>div{display:flex;gap:8px;min-width:0}
.mode-picker.arc-plain .mc-join input{flex:1 1 0;min-width:0;width:auto}
.mode-picker.arc-plain .mc-join button{flex:none;padding-right:14px}
.mode-choices button{position:relative;overflow:hidden;padding-right:66px}
.opt-fx{position:absolute;right:12px;top:50%;width:42px;height:42px;margin-top:-21px;display:grid;place-items:center;font-size:30px;line-height:1;pointer-events:none;opacity:.85}
.mode-choices button:hover .opt-fx,.mode-choices button:active .opt-fx,.mode-choices button:focus-visible .opt-fx{opacity:1}
.mode-choices button:hover .fx-spin,.mode-choices button:active .fx-spin,.mode-choices button:focus-visible .fx-spin{animation:ofSpin .8s ease-in-out infinite}
.mode-choices button:hover .fx-hop,.mode-choices button:active .fx-hop,.mode-choices button:focus-visible .fx-hop{animation:ofHop .55s ease-in-out infinite}
.mode-choices button:hover .fx-flip,.mode-choices button:active .fx-flip,.mode-choices button:focus-visible .fx-flip{animation:ofFlip .9s ease-in-out infinite}
.mode-choices button:hover .fx-slide,.mode-choices button:active .fx-slide,.mode-choices button:focus-visible .fx-slide{animation:ofSlide .9s ease-in-out infinite}
.mode-choices button:hover .fx-shake,.mode-choices button:active .fx-shake,.mode-choices button:focus-visible .fx-shake{animation:ofShake .35s linear infinite}
.mode-choices button:hover .fx-pulse,.mode-choices button:active .fx-pulse,.mode-choices button:focus-visible .fx-pulse{animation:ofPulse .7s ease-in-out infinite}
.mode-choices button:hover .fx-zoom,.mode-choices button:active .fx-zoom,.mode-choices button:focus-visible .fx-zoom{animation:ofZoom .8s ease-out infinite}
.mode-choices button:hover .fx-drop,.mode-choices button:active .fx-drop,.mode-choices button:focus-visible .fx-drop{animation:ofDrop .75s ease-in infinite}
.mode-choices button:hover .fx-drop2,.mode-choices button:active .fx-drop2,.mode-choices button:focus-visible .fx-drop2{animation:ofDrop .75s ease-in .2s infinite}
.mode-choices button:hover .fx-wave,.mode-choices button:active .fx-wave,.mode-choices button:focus-visible .fx-wave{animation:ofWave 1s ease-in-out infinite}
@keyframes ofSpin{to{transform:rotate(360deg) scale(1.15)}}
@keyframes ofHop{50%{transform:translateY(-12px) scale(1.12)}}
@keyframes ofFlip{50%{transform:rotateY(180deg) scale(1.15)}}
@keyframes ofSlide{0%{transform:translateX(-26px)}50%{transform:translateX(6px)}100%{transform:translateX(-26px)}}
@keyframes ofShake{25%{transform:rotate(-14deg)}75%{transform:rotate(14deg)}}
@keyframes ofPulse{50%{transform:scale(1.4)}}
@keyframes ofZoom{0%{transform:scale(.5);opacity:.4}70%{transform:scale(1.5);opacity:1}100%{transform:scale(1)}}
@keyframes ofDrop{0%{transform:translateY(-34px)}70%{transform:translateY(4px)}85%{transform:translateY(-5px)}100%{transform:translateY(0)}}
@keyframes ofWave{25%{transform:translate(-6px,-5px) rotate(-10deg)}75%{transform:translate(6px,5px) rotate(10deg)}}
.arc-scene{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.arc-scene i{position:absolute;font-style:normal;line-height:1;opacity:.6;animation:arcFloat var(--d,10s) ease-in-out infinite alternate;will-change:transform}
.mini-games-screen[data-lv="play"] .arc-scene i{opacity:.2}
@keyframes arcFloat{from{transform:translate(0,0) rotate(-6deg)}to{transform:translate(14px,-22px) rotate(8deg)}}
html[data-theme="dark"] .arc-top .arc-logo,html[data-theme="dark"] .arc-top .arc-nav{background:#fff}
html[data-fx="off"] .arc-scene i,html[data-fx="off"] .opt-fx{animation:none!important}
@media(prefers-reduced-motion:reduce){.arc-scene i,.opt-fx{animation:none!important}}
/* 0.2.94: huecos de carta en las esquinas de cada casa, ficha sin vidas, y animacion + texto al activar una carta */
.pc-slot{position:absolute;width:7.4%;height:7.4%;margin:-3.7% 0 0 -3.7%;padding:0;border-radius:22%;border:2px dashed var(--pc-c);background:#ffffffb3;font-size:calc(var(--pc-u)*1.05);line-height:1;display:grid;place-items:center;z-index:3;-webkit-tap-highlight-color:transparent}
.pc-slot::after{content:"";position:absolute;inset:-6px}
.pc-slot:disabled{opacity:1}
.pc-slot.full{border-style:solid;background:linear-gradient(145deg,#fff8de,#ffe28f);box-shadow:0 2px 4px #0007}
.pc-slot.full:not(:disabled){cursor:pointer}.pc-slot.full.ready{animation:pcSlot .9s ease-in-out infinite alternate}.pc-slot.full:not(.ready):not(.on){filter:saturate(.55) brightness(.92)}
.pc-slot.on{border-color:#d62027;box-shadow:0 0 0 3px #d62027,0 2px 4px #0007;animation:none;transform:scale(1.15)}
@keyframes pcSlot{to{transform:translateY(-8%);box-shadow:0 5px 8px #0007,0 0 0 2px #ffd54a}}
.pc-piece.ko{filter:grayscale(.85) brightness(.8);border-style:dashed}
.pc-cardinfo2{max-width:560px;margin:10px auto 0;padding:9px 12px;border-radius:14px;background:#fff8de;color:#3a2a05;border:2px solid #c9a23a;display:grid;gap:4px;text-align:center}
.pc-cardinfo2.hidden{display:none}.pc-cardinfo2 b{display:block;font-size:15px}.pc-cardinfo2 span{display:block;font-size:13px}.pc-cardinfo2 .arc-btn{justify-self:center;margin-top:4px}
.pc-fx{position:absolute;left:8%;right:8%;top:50%;transform:translateY(-50%) scale(.6);z-index:9;padding:3.5% 4%;border-radius:18px;background:#101a33f2;color:#fff;border:3px solid #ffd54a;text-align:center;opacity:0;pointer-events:none;display:grid;gap:2px;justify-items:center;box-shadow:0 10px 30px #000a}
.pc-fx.show{animation:pcFx 2.6s ease-out forwards}
@keyframes pcFx{0%{opacity:0;transform:translateY(-50%) scale(.6)}10%,84%{opacity:1;transform:translateY(-50%) scale(1)}100%{opacity:0;transform:translateY(-58%) scale(1)}}
.pc-fx b{display:block;font-size:calc(var(--pc-u)*1.25);color:#ffd54a}.pc-fx p{margin:0;font-size:calc(var(--pc-u)*.82);line-height:1.25}.pc-fx small{display:block;font-size:calc(var(--pc-u)*.74);opacity:.85;margin-top:2px}
.pc-fx-e{display:block;font-size:calc(var(--pc-u)*3.6);line-height:1.1}
.pc-fx.show .fx-bomba{animation:fxBoom 1.1s ease-out}
.pc-fx.show .fx-chancla{animation:fxSlap .9s ease-in-out 2}
.pc-fx.show .fx-machete{animation:fxSlash .7s ease-in 2}
.pc-fx.show .fx-ciclon{animation:fxSpin 1.4s linear}
.pc-fx.show .fx-hielo{animation:fxFreeze 1.6s ease-in-out}
.pc-fx.show .fx-cambio{animation:fxSpin 1.2s ease-in-out}
.pc-fx.show .fx-escudo{animation:fxPulse .8s ease-in-out 2}
.pc-fx.show .fx-curita{animation:fxRise 1.4s ease-out}
.pc-fx.show .fx-turbo{animation:fxZap .35s steps(2) 4}
.pc-fx.show .fx-motoconcho{animation:fxDrive 1.5s ease-in-out}
@keyframes fxBoom{0%{transform:scale(.4)}45%{transform:scale(1) rotate(-8deg)}60%{transform:scale(2.1);filter:brightness(2.2)}100%{transform:scale(1)}}
@keyframes fxSlap{0%,100%{transform:rotate(-50deg) translateX(-30%)}50%{transform:rotate(25deg) translateX(25%) scale(1.25)}}
@keyframes fxSlash{0%{transform:translate(-60%,-40%) rotate(-70deg)}100%{transform:translate(50%,40%) rotate(40deg)}}
@keyframes fxSpin{to{transform:rotate(720deg) scale(1.2)}}
@keyframes fxFreeze{0%{transform:scale(.5);filter:none}50%{transform:scale(1.4);filter:drop-shadow(0 0 14px #7fe3ff) brightness(1.4)}100%{transform:scale(1);filter:drop-shadow(0 0 8px #7fe3ff)}}
@keyframes fxPulse{50%{transform:scale(1.45);filter:drop-shadow(0 0 14px #5ee0ff)}}
@keyframes fxRise{0%{transform:translateY(40%) scale(.7);filter:none}100%{transform:translateY(-10%) scale(1.25);filter:drop-shadow(0 0 14px #7dff9b)}}
@keyframes fxZap{50%{transform:translateX(12%) skewX(-14deg) scale(1.3);filter:brightness(1.8)}}
@keyframes fxDrive{0%{transform:translateX(-160%)}60%{transform:translateX(15%) rotate(-6deg)}100%{transform:translateX(0)}}
html[data-fx="off"] .pc-fx.show .pc-fx-e,html[data-fx="off"] .pc-slot.full{animation:none}
@media(prefers-reduced-motion:reduce){.pc-fx.show .pc-fx-e,.pc-slot.full{animation:none}}
html[data-fx="off"] .pc-piece.tgt{animation:none}
html[data-fx="off"] .pc-piece.can,html[data-fx="off"] .pc-av.turn,html[data-fx="off"] .pc-dice.go{animation:none}
@media(prefers-reduced-motion:reduce){.pc-piece.can,.pc-av.turn,.pc-dice.go{animation:none}.pc-piece{transition:none}}
/* 0.3.64 (dueno, iPhone): en telefonos de 430 px o menos la fila de arriba del Sudoku no cabia y el boton de modo oscuro quedaba cortado a la derecha */
@media(max-width:430px){#gameScreen .topbar{padding-left:10px;padding-right:10px;gap:8px}#gameScreen .top-actions{gap:4px}#gameScreen .game-brand-copy small{display:none}}
/* 0.3.77: a 390 px o menos (iPhone mini/SE, muchos Android) seguía sin caber: el botón de modo oscuro se salía 16 px. Ahí se quita la palabra SUDOMI y queda el logo */
@media(max-width:390px){#gameScreen .game-brand-copy{display:none}}
.pc-tl{position:absolute;transform:translate(-50%,-50%);width:calc(var(--pc-u)*1.2);height:calc(var(--pc-u)*1.2);border-radius:50%;display:grid;place-items:center;background:#fff;color:#10213b;border:2px solid var(--pc-c);font:900 calc(var(--pc-u)*.74)/1 system-ui,sans-serif;font-style:normal;z-index:2;pointer-events:none;box-shadow:0 1px 3px #0006}
.pc-trow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}.pc-trow>span{font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-trow .pc-seg{flex:0 0 auto}
.pc-duel-show.roll span{animation:pcSlot .35s ease-in-out infinite alternate}
/* 0.3.67: tablero de equipos y colores de Parchis guerra (teamBoard en js/parchis.js) */
.pc-tb{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.pc-tb-side{display:grid;gap:8px;align-content:start;padding:10px 8px;border-radius:16px;background:#8882;border:2px solid #8886;text-align:center}.pc-tb-side h4{margin:0;font-size:17px;font-weight:900}.pc-tb-side small{font-size:11px;opacity:.85}
.pc-tb-slot{display:grid;justify-items:center;align-content:center;gap:2px;min-height:96px;padding:8px 6px;border:3px solid #0003;border-radius:14px;background:var(--pc-c);color:var(--pc-ink);font:inherit;cursor:pointer;min-width:0}.pc-tb-slot i{font-style:normal;font-size:30px;line-height:1.15}.pc-tb-slot b{font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-tb-slot em{font-style:normal;font-size:10px;font-weight:800;opacity:.85;text-transform:uppercase;letter-spacing:.5px}
.pc-tb-slot.free i{opacity:.7}.pc-tb-slot.me{box-shadow:0 0 0 3px #fff,0 0 0 6px #10213b}.pc-tb-slot.sel{box-shadow:0 0 0 3px #fff,0 0 0 6px #d62027;transform:scale(1.04)}
#miniGamesScreen[data-alt="war"] .pc-tb-side{color:#ffe9e9;background:#fff2;border-color:#fff5}
/* 0.3.68 (dueño): el cuadro de una carta de Parchís guerra sale EN MEDIO del tablero; la condición va en rojo */
.pc-board>.pc-cardinfo2{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:30;width:min(86%,360px);max-width:none;margin:0;padding:12px 14px;box-shadow:0 12px 34px #000a}
.pc-cardinfo2 .pc-cond{display:block;font-style:normal;font-size:12.5px;font-weight:800;color:#c8141b}
.pc-cardinfo2 .pc-cond.now{color:#8f1016;background:#ffe1e1;border-radius:8px;padding:4px 6px}
.pc-ci-btns{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:6px}.pc-ci-btns .arc-btn{margin:0;padding:8px 12px;font-size:13px}.pc-ci-btns .arc-btn:disabled{opacity:.45}
/* en Experto, Maestro y Extremo no hay boton Auto: la fila queda de tres */
#gameScreen .mode-row.no-auto{grid-template-columns:repeat(3,1fr)!important}
#miniGamesScreen[data-alt="war"] #pcMsg{color:#fff}
/* sala online con el fondo rojo de guerra: la lista de jugadores no se leia (letras oscuras sobre fondo oscuro) */
#miniGamesScreen[data-alt="war"] .lb-head,#miniGamesScreen[data-alt="war"] .lb-seats,#miniGamesScreen[data-alt="war"] .lb-hint,#miniGamesScreen[data-alt="war"] .lb-status,#miniGamesScreen[data-alt="war"] .pc-opt>b,#miniGamesScreen[data-alt="war"] .pc-opt .pc-hint{color:#ffeaea}
#miniGamesScreen[data-alt="war"] .lb-seat{background:#ffffff26}

/* ===== 0.3.87 — Acertijos (js/puzzles.js) y Modo historia (js/story.js). Aspecto de manuscrito: pergamino, tinta, rojo de rúbrica y azul lapislázuli.
   Todo cuelga de .pz (la caja de la pantalla); los colores son variables para que el modo oscuro solo cambie esta lista. */
.pz{--pz-paper:#f4e8cc;--pz-paper2:#ecdcb6;--pz-edge:#d3bd8c;--pz-ink:#3b2a1a;--pz-soft:#6d5a41;--pz-rub:#9b2d1f;--pz-lapis:#24457a;--pz-leaf:#a87a1c;--pz-water:#6f9fc0;--pz-water2:#4f7fa3;--pz-grass:#cfd9a4;--pz-ok:#2f6b3c;--pz-serif:'Palatino Linotype','Book Antiqua',Palatino,'Iowan Old Style',Georgia,serif}
html[data-theme="dark"] .pz{--pz-paper:#2b2418;--pz-paper2:#352c1d;--pz-edge:#55462c;--pz-ink:#eee1c2;--pz-soft:#bcab88;--pz-rub:#e69278;--pz-lapis:#a9c3ee;--pz-leaf:#dcb45c;--pz-water:#31566f;--pz-water2:#23445a;--pz-grass:#3c4a2c;--pz-ok:#8fd09c}
.pz-intro{margin:6px 2px 12px;font:15px/1.55 var(--pz-serif);color:var(--pz-ink);max-width:62ch}
html[data-theme="dark"] .pz-intro{color:var(--pz-ink)}
.pz-prog{display:flex;align-items:center;gap:10px;margin:0 2px 14px;font-size:13px;color:var(--pz-soft)}
.pz-prog b{font:700 20px/1 var(--pz-serif);color:var(--pz-rub)}
.pz-prog span{flex:1;height:6px;border-radius:3px;background:var(--pz-paper2);overflow:hidden}
.pz-prog span i{display:block;height:100%;background:var(--pz-leaf)}
.pz-cat{margin:0 0 18px}
.pz-cat h3{margin:0;font:700 19px/1.2 var(--pz-serif);color:var(--pz-rub)}
.pz-cat>p{margin:2px 0 8px;font-size:12.5px;color:var(--pz-soft)}
.pz-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:7px}
.pz-item{display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 10px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);text-align:left;cursor:pointer}
.pz-item em{flex:0 0 38px;font:700 15px/1 var(--pz-serif);font-style:normal;color:var(--pz-lapis);text-align:center}
.pz-item span{min-width:0;display:grid;gap:2px}
.pz-item b{font:600 14.5px/1.2 var(--pz-serif)}
.pz-item small{font-size:11px;letter-spacing:1px;color:var(--pz-soft)}
.pz-item.done{background:var(--pz-paper2)}
.pz-item.done small{color:var(--pz-leaf)}
.pz-item:hover{border-color:var(--pz-lapis)}
.pz-item:focus-visible,.pz-btn:focus-visible,.pz-link:focus-visible,.pz-opt:focus-visible,.pz-pas:focus-visible,.pz-jug:focus-visible,.pz-peg:focus-visible,.sy-door:focus-visible,.pz-chess button:focus-visible,.pz-magic button:focus-visible,.pz-pad button:focus-visible{outline:3px solid var(--pz-lapis);outline-offset:2px}
.pz-page{position:relative;margin:8px 0 14px;padding:18px 20px 20px;border:1px solid var(--pz-edge);border-radius:4px;color:var(--pz-ink);font-family:var(--pz-serif);
 background:radial-gradient(120% 90% at 0 0,#ffffff38,transparent 60%),radial-gradient(90% 70% at 100% 100%,#7a55201f,transparent 65%),var(--pz-paper);box-shadow:0 1px 0 var(--pz-paper2),0 8px 22px #3b2a1a1f}
.pz-page:before{content:"";position:absolute;inset:5px;border:1px solid var(--pz-edge);border-radius:2px;opacity:.55;pointer-events:none}
.pz-page .pz-src{margin:0 0 4px;font-size:12.5px;font-style:italic;color:var(--pz-rub)}
.pz-page h3{margin:0 0 10px;font:700 23px/1.15 var(--pz-serif);color:var(--pz-ink)}
.pz-page .pz-q{margin:0;font-size:16.5px;line-height:1.6;max-width:64ch}
.pz-page .pz-q:first-letter{float:left;margin:4px 8px 0 0;font-size:3.3em;line-height:.8;font-weight:700;color:var(--pz-rub)}
.pz-btn{min-height:44px;padding:9px 18px;border:0;border-radius:6px;background:var(--pz-lapis);color:#fbf4e2;font:700 15px/1 var(--pz-serif);cursor:pointer}
html[data-theme="dark"] .pz-btn{color:#1b1610}
.pz-btn:disabled{opacity:.5;cursor:default}
.pz-link{min-height:40px;padding:6px 4px;border:0;background:none;color:var(--pz-lapis);font-size:13.5px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.pz-link:disabled{opacity:.5;text-decoration:none;cursor:default}
.pz-back{margin:-2px 0 0}
.pz-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:10px 0 0}
.pz-count{font-size:13px;color:var(--pz-soft)}
.pz-ans{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.pz-ans label{display:grid;gap:4px;font-size:12.5px;color:var(--pz-soft)}
.pz-ans input,.pz-table input{width:130px;min-height:44px;padding:6px 10px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);font:700 18px/1 var(--pz-serif)}
.pz-multi input{width:104px}
.pz-ans>i{align-self:center;margin-top:18px;font-style:normal;font-size:13.5px;color:var(--pz-soft)}
.pz-msg{min-height:20px;margin:10px 0 0;font-size:14px;color:var(--pz-soft)}
.pz-msg.good,.pz-msg.bad{padding:9px 12px;border-radius:6px;border-left:4px solid}
.pz-msg.good{background:#2f6b3c1c;border-color:var(--pz-ok);color:var(--pz-ok)}
.pz-msg.bad{background:#9b2d1f17;border-color:var(--pz-rub);color:var(--pz-rub)}
.pz-hint{margin:8px 0 0;padding:8px 12px;border-left:3px solid var(--pz-leaf);background:var(--pz-paper2);color:var(--pz-ink);font:14.5px/1.45 var(--pz-serif)}
.pz-solved{margin:14px 0 4px;padding:14px 16px;border:1px solid var(--pz-leaf);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);font:15px/1.5 var(--pz-serif)}
.pz-solved p{margin:0 0 8px}
.pz-stars{font-size:26px;letter-spacing:4px;color:var(--pz-leaf)}
.pz-prize{font-weight:700;color:var(--pz-leaf)}
.pz-opts{display:grid;gap:8px}
.pz-opt{min-height:48px;padding:10px 14px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);font:15.5px/1.3 var(--pz-serif);text-align:left;cursor:pointer}
.pz-opt.ok{border-color:var(--pz-ok);background:#2f6b3c22}
.pz-opt.no{opacity:.5;text-decoration:line-through}
.pz-table{border-collapse:collapse;margin:0 0 10px}
.pz-table th{padding:4px 8px;font:600 13px/1.2 var(--pz-serif);color:var(--pz-soft);text-align:left}
.pz-table td{padding:3px}
.pz-table input{width:70px;text-align:center}
.pz-goal{margin:0 0 8px;font:italic 14.5px/1.3 var(--pz-serif);color:var(--pz-rub)}
/* cruzar el rio */
.pz-river{display:grid;grid-template-columns:1fr 1.15fr 1fr;min-height:190px;border:1px solid var(--pz-edge);border-radius:6px;overflow:hidden}
.pz-bank{display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px;padding:8px;background:var(--pz-grass)}
.pz-bank.goal{justify-content:flex-end;box-shadow:inset 3px 0 0 #0000000d}
.pz-water{position:relative;background:repeating-linear-gradient(175deg,transparent 0 16px,#ffffff24 16px 18px),linear-gradient(180deg,var(--pz-water),var(--pz-water2))}
.pz-boat{position:absolute;bottom:14px;left:6px;display:flex;justify-content:center;gap:4px;min-width:112px;min-height:66px;padding:5px 8px 8px;border-radius:6px 6px 28px 28px;background:#7a5230;box-shadow:0 5px 0 #0000002e;transition:left .45s ease}
.pz-boat.r{left:calc(100% - 118px)}
.pz-boat em{align-self:center;font:italic 13px var(--pz-serif);color:#f1dfc0}
.pz-pas{display:grid;justify-items:center;gap:1px;width:58px;min-height:54px;padding:4px 2px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);cursor:pointer}
.pz-pas b{font-size:24px;line-height:1.1;font-weight:400}
.pz-pas small{font-size:9.5px;line-height:1.1;text-align:center}
.pz-pas.far{opacity:.6}
.pz-pas.on{width:50px;border-color:#f1dfc0}
/* jarras */
.pz-jugs{display:flex;align-items:flex-end;gap:22px;padding:14px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper2)}
.pz-jug{display:grid;justify-items:center;gap:6px;padding:6px;border:2px solid transparent;border-radius:6px;background:none;color:var(--pz-ink);cursor:pointer}
.pz-jug span{position:relative;display:block;width:66px;height:var(--h);border:3px solid var(--pz-ink);border-top:0;border-radius:0 0 12px 12px;overflow:hidden;background:var(--pz-paper)}
.pz-jug span i{position:absolute;left:0;right:0;bottom:0;height:var(--f);background:var(--pz-rub);transition:height .3s ease}
.pz-jug b{font:700 15px/1 var(--pz-serif)}
.pz-jug.sel{border-color:var(--pz-leaf);background:var(--pz-paper)}
/* torre de Hanoi */
.pz-hanoi{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper2)}
.pz-peg{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px;height:150px;padding:0 4px 8px;border:2px solid transparent;border-bottom:6px solid #7a5230;border-radius:6px;background:none;cursor:pointer}
.pz-peg:before{content:"";position:absolute;bottom:0;left:50%;width:6px;height:120px;margin-left:-3px;border-radius:3px 3px 0 0;background:#7a5230}
.pz-peg i{position:relative;display:block;width:var(--w);height:20px;border-radius:5px;background:var(--pz-lapis);box-shadow:inset 0 -3px 0 #00000026}
.pz-peg i[data-d="1"]{background:var(--pz-leaf)}.pz-peg i[data-d="2"]{background:var(--pz-rub)}.pz-peg i[data-d="3"]{background:var(--pz-lapis)}.pz-peg i[data-d="4"]{background:var(--pz-ok)}
.pz-peg.sel{border-color:var(--pz-leaf);border-bottom-color:#7a5230}
.pz-peg.sel i:first-child{transform:translateY(-8px)}
/* reinas y cuadrado magico */
.pz-chess{display:grid;grid-template-columns:repeat(var(--n),1fr);width:min(100%,360px);border:2px solid var(--pz-ink)}
.pz-chess button{aspect-ratio:1;border:0;background:var(--pz-paper);color:var(--pz-ink);font-size:clamp(18px,5.2vw,28px);line-height:1;padding:0;cursor:pointer}
.pz-chess button.dk{background:var(--pz-edge)}
.pz-chess button.bad{background:#c8483a;color:#fff}
.pz-magic{display:grid;grid-template-columns:repeat(3,1fr);width:min(100%,228px);border:2px solid var(--pz-ink)}
.pz-magic button{aspect-ratio:1;border:1px solid var(--pz-edge);background:var(--pz-paper);color:var(--pz-ink);font:700 28px/1 var(--pz-serif);cursor:pointer}
.pz-magic button.sel{background:var(--pz-paper2);box-shadow:inset 0 0 0 3px var(--pz-leaf)}
.pz-pad{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;width:min(100%,420px);margin:10px 0 0}
.pz-pad button{min-height:44px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);font:700 17px/1 var(--pz-serif);cursor:pointer}
.pz-pad button.used{opacity:.4}
/* modo historia */
.sy-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:2px 0 10px;padding:8px 12px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);font:700 15px/1 var(--pz-serif)}
.sy-hearts{font-size:19px;letter-spacing:2px;color:var(--pz-rub)}
.sy-hearts i{font-style:normal;opacity:.22}
.sy-rel{margin-left:auto;display:flex;gap:6px;font-size:19px}
.sy-rel i{font-style:normal}
.sy-trail{display:flex;align-items:center;gap:12px;margin:0 2px 10px;color:var(--pz-ink)}
.sy-trail b{font:700 16px/1.2 var(--pz-serif)}
.sy-trail ol{flex:1;display:flex;align-items:center;gap:0;margin:0;padding:0;list-style:none}
.sy-trail li{position:relative;flex:1;height:22px;font-size:15px;line-height:22px;text-align:right}
.sy-trail li:before{content:"";position:absolute;left:0;right:14px;top:10px;border-top:2px dashed var(--pz-edge)}
.sy-trail li:after{content:"";position:absolute;right:0;top:5px;width:12px;height:12px;border-radius:50%;border:2px solid var(--pz-edge);background:var(--pz-paper)}
.sy-trail li:last-child:after{display:none}
.sy-trail li.done:before{border-top-style:solid;border-color:var(--pz-leaf)}
.sy-trail li.done:after{background:var(--pz-leaf);border-color:var(--pz-leaf)}
.sy-trail li.now:after{border-color:var(--pz-rub);box-shadow:0 0 0 3px #9b2d1f33}
.sy-h{margin:12px 2px 8px;font:700 19px/1.2 var(--pz-serif);color:var(--pz-ink)}
.sy-doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}
.sy-door{display:flex;align-items:center;gap:12px;min-height:84px;padding:12px 14px;border:1px solid var(--pz-edge);border-left:5px solid var(--pz-lapis);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);text-align:left;cursor:pointer}
.sy-door em{flex:0 0 40px;font-size:30px;font-style:normal;text-align:center;color:var(--pz-rub)}
.sy-door span{display:grid;gap:3px;min-width:0}
.sy-door small{font-size:11.5px;color:var(--pz-soft)}
.sy-door b{font:700 16.5px/1.2 var(--pz-serif)}
.sy-door i{font-style:normal;font-size:12.5px;line-height:1.35;color:var(--pz-soft)}
.sy-door.k-juego{border-left-color:var(--pz-rub)}.sy-door.k-sudoku{border-left-color:var(--pz-ok)}.sy-door.k-descanso,.sy-door.k-cofre,.sy-door.k-mercader{border-left-color:var(--pz-leaf)}.sy-door.k-jefe{border-left-color:var(--pz-ink);background:var(--pz-paper2)}
.sy-door:hover:not(:disabled){border-color:var(--pz-lapis)}
.sy-door:disabled{opacity:.5;cursor:default}
.sy-big{display:block;width:100%;min-height:50px;margin:12px 0 0;font-size:17px}
.sy-quit{display:block;margin:16px auto 0}
.sy-rules{margin:0 0 4px;padding:0 0 0 20px;color:var(--pz-ink);font:15px/1.55 var(--pz-serif)}
.sy-asc{margin:12px 0 0;color:var(--pz-ink);font:700 14px/1 var(--pz-serif)}
.sy-asc .cust-seg{margin-top:6px}
.sy-kind{margin:0 2px;font:italic 14px/1.3 var(--pz-serif);color:var(--pz-rub)}
.sy-say{margin:6px 2px 0;font:italic 15.5px/1.45 var(--pz-serif);color:var(--pz-ink)}
.sy-tries{margin:0 2px 8px;font-size:13px;color:var(--pz-soft)}
.sy-tries b{color:var(--pz-rub)}
.sy-sum{display:flex;flex-wrap:wrap;gap:8px 22px;margin:4px 2px;font:16px/1.3 var(--pz-serif);color:var(--pz-ink)}
.sy-sum b{font-size:22px;color:var(--pz-rub)}
.art-story{--svg:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 110' preserveAspectRatio='xMaxYMid slice'><path d='M170 92 C200 92 196 62 226 62 S250 30 282 30 S300 14 314 12' fill='none' stroke='white' stroke-opacity='.45' stroke-width='3' stroke-dasharray='2 9' stroke-linecap='round'/><g fill='%23ffd24a'><circle cx='170' cy='92' r='7'/><circle cx='226' cy='62' r='7'/><circle cx='282' cy='30' r='7'/></g><path d='M300 4 l5 9 10 1 -7 7 2 10 -10 -5 -9 5 2 -10 -7 -7 10 -1z' fill='white' fill-opacity='.85' transform='translate(-2 -2) scale(.9)'/></svg>");--bgi:linear-gradient(110deg,#4a1f14,#9b2d1f)}
.art-puz{--svg:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 110' preserveAspectRatio='xMaxYMid slice'><g fill='white' fill-opacity='.16'><rect x='196' y='14' width='96' height='82' rx='4'/></g><g stroke='white' stroke-opacity='.5' stroke-width='3' stroke-linecap='round'><path d='M232 34h46M212 50h66M212 64h66M212 78h40'/></g><text x='206' y='44' font-family='Georgia,serif' font-size='30' font-weight='700' fill='%23ffd24a'>A</text></svg>");--bgi:linear-gradient(110deg,#172c4f,#24457a)}
@media (max-width:520px){.pz-page{padding:16px 15px 17px}.pz-page h3{font-size:21px}.pz-page .pz-q{font-size:16px}.pz-river{min-height:214px}.pz-pas{width:50px}.pz-pas.on{width:46px}.pz-boat{min-width:100px}.pz-boat.r{left:calc(100% - 106px)}.pz-jugs{gap:10px}.pz-ans input{width:112px}.pz-multi input{width:86px}}
@media (prefers-reduced-motion:reduce){.pz-boat,.pz-jug span i{transition:none}.pz-peg.sel i:first-child{transform:none}}
html body .home-menu.soon-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
html body .home-menu.soon-row #homeDaily{grid-column:1/-1}
@media (max-width:520px){html .soon-row .home-option.art-story,html .soon-row .home-option.art-puz{min-height:84px;padding:12px 12px}.art-story .dev-badge,.art-puz .dev-badge{display:none}}

/* ===== 0.3.88 — Aventura (js/adventure.js): el mapa es un <canvas> de 208 x 176 puntos ampliado sin suavizar. Usa los colores de .pz */
.av-hud{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:2px 0 8px;padding:8px 12px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);font:700 14px/1 var(--pz-serif)}
.av-hud>b{font-size:16px}
.av-hp{position:relative;flex:1 1 110px;min-width:96px;height:20px;border:1px solid var(--pz-ink);border-radius:4px;background:var(--pz-paper2);overflow:hidden}
.av-hp i{position:absolute;inset:0 auto 0 0;background:#c0392b;transition:width .35s ease}
.av-hp em{position:relative;display:block;font-style:normal;font-size:12.5px;line-height:18px;text-align:center;color:#fff;text-shadow:0 1px 1px #000a}
.av-stage{border:3px solid var(--pz-ink);border-radius:6px;overflow:hidden;background:#24331f;line-height:0}
.av-map{display:block;width:100%;aspect-ratio:13/11;image-rendering:pixelated;image-rendering:crisp-edges;cursor:pointer;touch-action:manipulation;outline-offset:-3px}
.av-map:focus-visible{outline:3px solid var(--pz-leaf)}
.av-talk{display:flex;gap:12px;align-items:flex-start;min-height:88px;margin:8px 0 0;padding:10px 12px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);font:15px/1.45 var(--pz-serif)}
.av-talk p{margin:0}
.av-talk small{display:inline-block;margin-top:4px;font-size:12.5px;color:var(--pz-soft)}
.av-talk>div{flex:1;min-width:0}
.av-face{flex:0 0 56px;width:56px;height:56px;image-rendering:pixelated;image-rendering:crisp-edges;border:1px solid var(--pz-edge);border-radius:4px;background:var(--pz-paper2)}
.av-bang{display:inline-block;min-width:14px;padding:0 3px;border-radius:3px;background:#24160c;color:#ffd84a;text-align:center}
.av-menu{justify-content:space-between}
.av-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.av-pick button{display:grid;justify-items:center;gap:6px;padding:12px;border:2px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);font:700 16px/1 var(--pz-serif);cursor:pointer}
.av-pick button.on{border-color:var(--pz-rub);background:var(--pz-paper2)}
.av-pick canvas{width:96px;height:96px;image-rendering:pixelated;image-rendering:crisp-edges}
.av-pick button:focus-visible,.av-shop button:focus-visible{outline:3px solid var(--pz-lapis);outline-offset:2px}
.av-name{display:grid;gap:4px;margin:12px 0 0;font-size:12.5px;color:var(--pz-soft)}
.av-name input{min-height:44px;padding:6px 10px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);font:700 17px/1 var(--pz-serif)}
.av-shop{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.av-shop button{display:grid;grid-template-columns:16px 1fr;align-items:center;gap:2px 8px;min-height:48px;padding:6px 8px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper2);color:var(--pz-ink);font:600 13.5px/1.2 var(--pz-serif);text-align:left;cursor:pointer}
.av-shop button i,.av-gear li i{display:inline-block;width:14px;height:14px;border:1px solid var(--pz-ink);border-radius:3px}
.av-shop button small{grid-column:2;margin:0;font-size:11.5px;color:var(--pz-soft)}
.av-shop button:disabled{opacity:.5;cursor:default}
.av-gear{display:flex;gap:16px;align-items:flex-start;color:var(--pz-ink);font:15px/1.5 var(--pz-serif)}
.av-gear canvas{flex:0 0 128px;width:128px;height:128px;image-rendering:pixelated;image-rendering:crisp-edges;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper)}
.av-gear ul{margin:0 0 8px;padding:0;list-style:none}
.av-gear li{display:flex;align-items:center;gap:8px}
.av-gear .sy-h{margin-top:0}
@media (max-width:520px){.av-gear canvas{flex-basis:96px;width:96px;height:96px}.av-shop{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.av-hp i{transition:none}}

/* ===== 0.3.89 — Acertijos a pantalla completa, con una vineta por acertijo (js/puzzle-art.js) y los resueltos en verde */
#puzScreen.pz-full{padding:0!important;align-items:stretch!important;justify-content:stretch!important;z-index:2147483000}
#puzScreen.pz-full>.tut-card{width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;margin:0!important;border-radius:0!important;box-shadow:none!important}
#puzScreen.pz-full>.tut-card>header{padding-top:max(14px,env(safe-area-inset-top))}
#puzScreen.pz-full .ach-body{padding-left:max(16px,calc((100% - 900px)/2));padding-right:max(16px,calc((100% - 900px)/2));padding-bottom:max(20px,env(safe-area-inset-bottom))}
#puzScreen.pz-solo>.tut-card>header{display:none}
#puzScreen.pz-solo .ach-body{padding-top:max(10px,env(safe-area-inset-top));padding-left:max(16px,calc((100% - 680px)/2));padding-right:max(16px,calc((100% - 680px)/2))}
.pz-top{display:flex;justify-content:flex-end;margin:0 0 8px}
.pz-exit{min-height:44px;padding:8px 16px;border:2px solid var(--pz-ink);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);font:700 15px/1 var(--pz-serif);cursor:pointer}
.pz-exit:focus-visible{outline:3px solid var(--pz-lapis);outline-offset:2px}
.pz-art{display:block;width:100%;height:auto;background:#fff}
.pz-fig{margin:0 0 12px;border-radius:4px;overflow:hidden;box-shadow:0 8px 22px #3b2a1a26}
.pz-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.pz-item{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px 8px;padding:0 0 8px;overflow:hidden}
.pz-item .pz-thumb{position:relative;grid-column:1/-1;display:block;border-bottom:1px solid var(--pz-edge)}
.pz-item em{flex:none;min-width:30px;padding-left:8px;font-size:13.5px;text-align:left}
.pz-item>span:last-child{padding-right:8px}
.pz-item b{font-size:14px}
.pz-item.done,html[data-theme="dark"] .pz-item.done{border-color:#2f8a4a;background:#dff3e2;color:#14401f;box-shadow:inset 0 0 0 2px #2f8a4a}
.pz-item.done em,.pz-item.done small{color:#1f6b36}
.pz-item.done .pz-thumb{border-bottom-color:#2f8a4a}
.pz-item.done .pz-thumb:after{content:"";position:absolute;inset:0;background:#2f8a4a33}
.pz-tick{position:absolute;right:6px;top:6px;z-index:1;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#2f8a4a;color:#fff;font:700 17px/1 system-ui,sans-serif;font-style:normal;box-shadow:0 0 0 2px #fff}
@media (max-width:520px){.pz-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pz-chess{grid-template-columns:repeat(var(--n),minmax(0,1fr));max-width:100%}
.pz-chess button,.pz-magic button{min-width:0;min-height:0;overflow:hidden}
.pz-chess{aspect-ratio:1;grid-template-rows:repeat(var(--n),minmax(0,1fr))}
.pz-chess button{aspect-ratio:auto;width:100%;height:100%}

/* ===== 0.3.91 — el acertijo abierto es una sola pagina de manga (.pz-manga): dibujo, texto en un cartel y respuesta dentro del mismo marco.
   Dentro del marco los colores son siempre papel blanco y tinta negra, tambien en modo oscuro. */
#puzScreen.pz-solo .ach-body{padding:max(6px,env(safe-area-inset-top)) 6px max(6px,env(safe-area-inset-bottom))!important}
.pz-manga,html[data-theme="dark"] .pz .pz-manga{--pz-paper:#fff;--pz-paper2:#efefef;--pz-edge:#111;--pz-ink:#111;--pz-soft:#444;--pz-rub:#111;--pz-lapis:#111;--pz-leaf:#111;--pz-ok:#1f7a3a;--pz-water:#cfcfcf;--pz-water2:#a9a9a9;--pz-grass:#fff;
 position:relative;display:flex;flex-direction:column;gap:8px;max-width:560px;margin:0 auto;padding:0 0 10px;border:3px solid #111;background:#fff;color:#111;font-family:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif}
.pz-manga .pz-exit{position:absolute;top:6px;right:6px;z-index:3;min-height:40px;padding:6px 12px;border:2px solid #111;border-radius:0;background:#fff;color:#111;font:800 14px/1 'Segoe UI',system-ui,sans-serif;box-shadow:2px 2px 0 #111}
.pz-manga .pz-fig{display:flex;justify-content:center;height:min(27dvh,210px);margin:0;border-radius:0;border-bottom:3px solid #111;box-shadow:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4'><rect width='4' height='4' fill='white'/><circle cx='1' cy='1' r='.6' fill='%23111'/><circle cx='3' cy='3' r='.6' fill='%23111'/></svg>")}
.pz-manga .pz-art{width:auto;height:100%;max-width:100%}
.pz-manga.k-river .pz-fig,.pz-manga.k-jugs .pz-fig,.pz-manga.k-hanoi .pz-fig,.pz-manga.k-magic .pz-fig,.pz-manga.k-grid .pz-fig{height:min(17dvh,130px)}
.pz-manga.k-queens .pz-fig{height:min(13dvh,100px)}
.pz-cap{position:relative;z-index:1;margin:-16px 10px 0;padding:7px 10px 8px;border:2px solid #111;background:#fff;box-shadow:3px 3px 0 #111}
.pz-manga .pz-src{margin:0 0 2px;font-size:11px;font-style:italic;color:#444}
.pz-manga .pz-q{margin:0;max-width:none;font:600 14.5px/1.36 'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;color:#111}
.pz-manga.long .pz-q{font-size:13.5px;line-height:1.33}
.pz-manga .pz-q:first-letter{float:none;margin:0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}
.pz-manga .pz-play,.pz-manga .pz-hints,.pz-manga .pz-foot,.pz-manga .pz-end{margin:0;padding:0 10px}
.pz-manga .pz-play[hidden],.pz-manga .pz-foot[hidden]{display:none}
.pz-manga .pz-ans{flex-wrap:nowrap;align-items:flex-end;gap:8px}
.pz-manga .pz-ans label{flex:1 1 0;min-width:0;font-weight:700;color:#111}
.pz-manga .pz-ans input,.pz-manga .pz-table input{width:100%;min-height:44px;border:2px solid #111;border-radius:0;background:#fff;color:#111;font:800 19px/1 'Segoe UI',system-ui,sans-serif}
.pz-manga .pz-ans>i{flex:none;margin:0 0 12px;font-weight:700;color:#111}
.pz-manga .pz-multi{flex-wrap:wrap}
.pz-manga .pz-multi label{flex:1 1 72px}
.pz-manga .pz-btn{flex:none;border-radius:0;background:#111;color:#fff;font:800 15px/1 'Segoe UI',system-ui,sans-serif;box-shadow:2px 2px 0 #777}
html[data-theme="dark"] .pz-manga .pz-btn{color:#fff}
.pz-manga .pz-link{min-height:36px;padding:4px 2px;font-weight:700;color:#111}
.pz-manga .pz-msg{margin:6px 0 0;min-height:0;font-weight:700}
.pz-manga .pz-msg.good,.pz-manga .pz-msg.bad{padding:6px 10px;border:2px solid #111;border-radius:0;background:#fff;color:#111}
.pz-manga .pz-msg.bad{background:#111;color:#fff}
.pz-manga .pz-hint{margin:0;padding:6px 10px;border:2px dashed #111;background:#fff;font:600 13.5px/1.35 'Segoe UI',system-ui,sans-serif}
.pz-manga .pz-solved{margin:0;padding:10px 12px;border:2px solid #111;border-radius:0;background:#fff;font:600 14px/1.4 'Segoe UI',system-ui,sans-serif;box-shadow:3px 3px 0 #111}
.pz-manga .pz-stars{font-size:22px;margin:0 0 4px}
.pz-manga .pz-prize{color:#1f7a3a}
.pz-manga .pz-opts{gap:6px}
.pz-manga .pz-opt{min-height:44px;padding:8px 12px;border:2px solid #111;border-radius:0;background:#fff;font:700 14.5px/1.25 'Segoe UI',system-ui,sans-serif}
.pz-manga .pz-opt.ok{background:#1f7a3a;color:#fff;border-color:#111}
.pz-manga .pz-table{margin:0 0 6px}
.pz-manga .pz-table input{width:64px;min-height:40px}
.pz-manga .pz-river{min-height:168px;border:2px solid #111;border-radius:0}
.pz-manga .pz-bank{background:#fff}
.pz-manga .pz-pas,.pz-manga .pz-jugs,.pz-manga .pz-hanoi{border-radius:0}
.pz-manga .pz-pas{border:2px solid #111;min-height:50px}
.pz-manga .pz-boat{background:#111}
.pz-manga .pz-jugs,.pz-manga .pz-hanoi{border:2px solid #111;background:#fff}
.pz-manga .pz-jug span i{background:#555}
.pz-manga .pz-peg{height:128px}
.pz-manga .pz-peg:before{height:104px}
.pz-manga .pz-peg i{height:18px}
.pz-manga .pz-peg i[data-d="1"]{background:#fff;border:2px solid #111}.pz-manga .pz-peg i[data-d="2"]{background:#999}.pz-manga .pz-peg i[data-d="3"]{background:#111}.pz-manga .pz-peg i[data-d="4"]{background:#555}
.pz-manga .pz-chess{width:min(100%,46dvh);margin:0 auto}
.pz-manga .pz-chess button.dk{background:#999}
.pz-manga .pz-magic{margin:0 auto;width:min(100%,180px)}
.pz-manga .pz-pad{margin:6px auto 0}
.pz-manga .pz-pad button{min-height:40px;border:2px solid #111;border-radius:0}
.pz-manga .pz-goal{margin:0 0 4px;font:700 13.5px/1.3 'Segoe UI',system-ui,sans-serif;font-style:normal}
.pz-manga .pz-row{margin-top:6px}
.pz-manga.k-num .pz-fig,.pz-manga.k-multi .pz-fig,.pz-manga.k-choice .pz-fig{height:auto;max-height:34dvh}
.pz-manga.k-num .pz-art,.pz-manga.k-multi .pz-art,.pz-manga.k-choice .pz-art{width:100%;height:auto;max-height:34dvh}
.pz-manga .pz-ans>i{align-self:flex-end;margin:0 0 13px}
.pz-manga.k-river .pz-fig{height:min(14dvh,108px)}
@media (max-height:700px){.pz-manga .pz-q{font-size:13.5px;line-height:1.3}.pz-manga.long .pz-q{font-size:12.5px}.pz-manga .pz-cap{padding:5px 8px 6px}.pz-manga{gap:6px}.pz-manga .pz-opt{min-height:40px;padding:6px 10px;font-size:13.5px}.pz-manga.k-num .pz-fig,.pz-manga.k-multi .pz-fig,.pz-manga.k-choice .pz-fig,.pz-manga.k-num .pz-art,.pz-manga.k-multi .pz-art,.pz-manga.k-choice .pz-art{max-height:27dvh}.pz-manga.k-choice .pz-fig,.pz-manga.k-choice .pz-art{max-height:20dvh}.pz-manga .pz-river{min-height:150px}.pz-manga .pz-peg{height:112px}.pz-manga .pz-peg:before{height:92px}}
.pz-pas.fam,.pz-manga .pz-pas.fam{border:3px solid var(--fam)}
.pz-manga.p-a17 .pz-river{grid-template-columns:1.3fr .9fr 1.3fr;min-height:132px}
.pz-manga.p-a17 .pz-bank{gap:4px;padding:6px 5px}
.pz-manga.p-a17 .pz-pas{width:calc((100% - 8px)/3);min-height:42px;padding:2px 0}
.pz-manga.p-a17 .pz-pas small{display:none}
.pz-manga.p-a17 .pz-pas b{font-size:21px}
.pz-manga.p-a17 .pz-boat{left:3px;min-width:76px;min-height:54px;gap:3px;padding:4px 4px 7px}
.pz-manga.p-a17 .pz-boat.r{left:calc(100% - 79px)}
.pz-manga.p-a17 .pz-boat .pz-pas{width:32px}
.pz-chess button,.pz-magic button,.pz-pad button,.pz-river button,.pz-jugs button,.pz-hanoi button{margin:0!important}

/* ===== 0.3.92 — Aventura a pantalla completa, con menu, inventario, combate y los dos lados de cada reto */
#advScreen.av-full{padding:0!important;align-items:stretch!important;justify-content:stretch!important;z-index:2147482000}
#advScreen.av-full>.tut-card{width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;margin:0!important;border-radius:0!important;box-shadow:none!important}
#advScreen.av-full>.tut-card>header{display:none}
#advScreen.av-full .ach-body{padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom))!important}
.av-col{display:flex;flex-direction:column;gap:8px;max-width:720px;min-height:100%;margin:0 auto}
.av-col .av-hud{margin:0}
.av-mbtn{min-height:40px;padding:6px 12px;border:2px solid var(--pz-ink);border-radius:6px;background:var(--pz-paper2);color:var(--pz-ink);font:700 14px/1 var(--pz-serif);cursor:pointer}
.av-mbtn:focus-visible,.av-tabs button:focus-visible,.av-acts button:focus-visible{outline:3px solid var(--pz-lapis);outline-offset:2px}
.av-col .av-stage{align-self:center;width:min(100%,calc((100dvh - 232px)*13/11))}
.av-col .av-talk{margin:0}
/* los dos lados */
.av-vs{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:8px 10px;border:2px solid var(--pz-ink);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink)}
.av-side{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;gap:2px 8px;min-width:0}
.av-side.r{grid-template-columns:1fr auto;text-align:right}
.av-side .av-big{grid-row:1/3;width:64px;height:64px;image-rendering:pixelated;image-rendering:crisp-edges;border:1px solid var(--pz-edge);border-radius:4px;background:var(--pz-paper2)}
.av-side.r .av-big{grid-column:2;transform:scaleX(-1)}
.av-side.r>b,.av-side.r>span,.av-side.r>small,.av-side.r>button{grid-column:1;justify-self:end}
.av-side b{font:700 14px/1.15 var(--pz-serif);overflow:hidden;text-overflow:ellipsis}
.av-side small{font-size:12px;color:var(--pz-soft)}
.av-side .av-hp{flex:none;width:100%;max-width:150px;min-width:0;height:18px}
.av-side .av-hp em{line-height:16px;font-size:12px}
.av-hp.foe i{background:#7a4a8c}
.av-x{font:700 20px/1 var(--pz-serif);font-style:normal;color:var(--pz-rub)}
.av-vsbar{position:fixed;left:0;right:0;top:0;z-index:2147482500;padding:max(6px,env(safe-area-inset-top)) 8px 6px;background:var(--pz-paper2);box-shadow:0 3px 10px #0006}
.av-vsbar .av-vs{max-width:720px;margin:0 auto}
.av-vsbar .pz-link{min-height:32px;padding:2px 0}
body.av-battle .mini-games-header,body.av-battle #miniGamesHub,body.av-battle #tabBar,body.av-battle .game-end-card>div:last-child,body.av-battle #changeMode,body.av-battle #resetScore{display:none!important}
body.av-battle .mini-games-shell{padding-top:calc(96px + env(safe-area-inset-top))!important}
body.av-battle #miniGamesScreen{position:fixed;inset:0;z-index:2147482400;overflow:auto;background:#1a1f2b}
/* combate */
.av-ring{position:relative;height:54px;border:1px solid var(--pz-edge);border-radius:6px;background:linear-gradient(180deg,var(--pz-paper2),var(--pz-paper));overflow:hidden}
.av-fx{position:absolute;top:50%;left:12%;width:0;height:0;opacity:0}
.fx-golpe .av-fx{width:26px;height:26px;margin-top:-13px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px var(--pz-rub);animation:avFly .45s ease-out}
.fx-espada .av-fx{width:64px;height:8px;margin-top:-4px;background:linear-gradient(90deg,#8a5a2b 0 16px,#e2b93b 16px 22px,#dfe8f2 22px);clip-path:polygon(0 0,86% 0,100% 50%,86% 100%,0 100%);box-shadow:0 0 12px #9fd0ff;animation:avFly .5s ease-in}
.fx-fuego .av-fx{width:34px;height:34px;margin-top:-17px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff7b0,#ff9a1f 45%,#d0342c 75%);box-shadow:0 0 18px #ff7a1f;animation:avFly .55s ease-in}
.fx-rayo .av-fx{left:74%;top:0;width:10px;height:100%;background:#ffe65a;clip-path:polygon(40% 0,100% 0,60% 42%,100% 42%,10% 100%,40% 55%,0 55%);box-shadow:0 0 20px #ffe65a;animation:avFlash .5s steps(2)}
.fx-escudo .av-fx{left:6%;width:44px;height:44px;margin-top:-22px;border-radius:50%;border:4px solid #7fd6ff;box-shadow:0 0 16px #7fd6ff;animation:avFlash .6s ease-out}
.fx-foe .av-fx{left:auto;right:12%;width:24px;height:24px;margin-top:-12px;border-radius:50%;background:#7a4a8c;animation:avBack .4s ease-out}
@keyframes avFly{0%{opacity:1;transform:translateX(0)}85%{opacity:1}100%{opacity:0;transform:translateX(min(62vw,420px))}}
@keyframes avBack{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(max(-62vw,-420px))}}
@keyframes avFlash{0%,60%{opacity:1}100%{opacity:0}}
.av-log{min-height:44px;margin:0;padding:8px 12px;border-left:4px solid var(--pz-leaf);background:var(--pz-paper);color:var(--pz-ink);font:15px/1.4 var(--pz-serif)}
.av-en{margin:0;font:700 14px/1 var(--pz-serif);letter-spacing:2px;color:var(--pz-lapis)}
.av-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.av-acts button{display:grid;gap:3px;min-height:54px;padding:8px 10px;text-align:left;font-size:15px}
.av-acts button small{font:400 11.5px/1.2 system-ui,sans-serif;opacity:.85}
.av-acts button.lock{background:var(--pz-paper2);color:var(--pz-soft);border:1px dashed var(--pz-edge)}
.av-items{margin:0}
/* menu */
.av-tabs{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.av-tabs button{min-height:42px;padding:8px 12px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);font:700 14px/1 var(--pz-serif);cursor:pointer}
.av-tabs button.on{background:var(--pz-lapis);border-color:var(--pz-lapis);color:#fbf4e2}
html[data-theme="dark"] .av-tabs button.on{color:#1b1610}
.av-tabs .av-close{margin-left:auto;border:2px solid var(--pz-ink)}
.av-xp{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:12.5px;color:var(--pz-soft)}
.av-xp span{flex:1;max-width:220px;height:8px;border-radius:4px;background:var(--pz-paper2);overflow:hidden}
.av-xp span i{display:block;height:100%;background:var(--pz-leaf)}
.av-pow,.av-inv,.av-places{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.av-pow li,.av-inv li,.av-places li{display:grid;gap:2px;padding:8px 12px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink)}
.av-pow b,.av-inv b,.av-places b{font:700 15px/1.2 var(--pz-serif)}
.av-pow small,.av-inv small,.av-places small{font-size:12.5px;line-height:1.4;color:var(--pz-soft)}
.av-pow li.lock{opacity:.6;border-style:dashed}
.av-inv li{grid-template-columns:36px 1fr auto;align-items:center;gap:10px}
.av-inv li em{font-size:26px;font-style:normal;text-align:center}
.av-inv li span{display:grid;gap:2px}
.av-inv li.rare{border-color:var(--pz-leaf);box-shadow:inset 0 0 0 1px var(--pz-leaf)}
.av-places li.done{border-left:5px solid var(--pz-ok)}
.av-places .pz-link{justify-self:start;min-height:32px;padding:2px 0}
.av-note{margin:0;font:14px/1.45 var(--pz-serif);color:var(--pz-ink)}
.av-mini{display:block;width:100%;max-width:520px;height:auto;margin:0 auto;border:3px solid var(--pz-ink);border-radius:4px;image-rendering:pixelated;image-rendering:crisp-edges}
.av-key{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0;font-size:12px;color:var(--pz-soft)}
.av-key i{display:inline-block;width:11px;height:11px;margin-right:4px;border:1px solid #15120e;vertical-align:-1px}
@media (max-width:520px){.av-side .av-big{width:52px;height:52px}.av-acts{grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:reduce){.av-fx{animation-duration:.01s!important}}
.av-col:has(.av-ring) .av-side .av-big{width:88px;height:88px}
.av-col:has(.av-ring) .av-vs{padding:12px}
.av-col .av-stage{width:100%}

/* ===== 0.3.93 — Aventura: animaciones del combate (entrada, ataques, golpes, botin) e inventario en casillas */
.av-side{position:relative}
.av-flash{position:fixed;inset:0;z-index:5;display:grid;place-items:center;background:#fff;pointer-events:none;animation:avBlink .75s steps(1) forwards}
.av-flash b{font:900 120px/1 Impact,'Arial Black',sans-serif;color:#c0392b;animation:avBang .75s ease-out forwards}
@keyframes avBlink{0%{opacity:1;background:#fff}20%{background:#15120e}40%{background:#fff}60%{background:#15120e}80%{opacity:1;background:#fff}100%{opacity:0;visibility:hidden}}
@keyframes avBang{0%{transform:scale(.2) rotate(-18deg)}45%{transform:scale(1.25) rotate(6deg)}100%{transform:scale(1) rotate(0)}}
.av-vs.intro .av-side{animation:avInL .6s .35s cubic-bezier(.2,.9,.3,1.25) both}
.av-vs.intro .av-side.r{animation-name:avInR}
.av-vs.intro .av-x{animation:avBang .5s .8s both}
@keyframes avInL{0%{opacity:0;transform:translateX(-110%)}100%{opacity:1;transform:none}}
@keyframes avInR{0%{opacity:0;transform:translateX(110%)}100%{opacity:1;transform:none}}
.av-vs.me-atk .av-side:not(.r) .av-big{animation:avLungeR .45s ease-in-out}
.av-vs.foe-atk .av-side.r .av-big{animation:avLungeL .45s ease-in-out}
.av-vs.foe-hit .av-side.r .av-big{animation:avHitL .5s .28s}
.av-vs.me-hit .av-side:not(.r) .av-big{animation:avHitR .5s .28s}
.av-vs.me-cast .av-side:not(.r) .av-big{animation:avCast .7s}
@keyframes avLungeR{0%,100%{transform:none}45%{transform:translateX(34px) rotate(8deg)}}
@keyframes avLungeL{0%,100%{transform:scaleX(-1)}45%{transform:translateX(-34px) scaleX(-1) rotate(8deg)}}
@keyframes avHitL{0%,100%{transform:scaleX(-1);filter:none}15%{transform:translateX(9px) scaleX(-1);filter:brightness(3) saturate(0)}35%{transform:translateX(-7px) scaleX(-1)}55%{transform:translateX(5px) scaleX(-1);filter:brightness(2)}75%{transform:translateX(-3px) scaleX(-1)}}
@keyframes avHitR{0%,100%{transform:none;filter:none}15%{transform:translateX(-9px);filter:brightness(3) saturate(0)}35%{transform:translateX(7px)}55%{transform:translateX(-5px);filter:brightness(2)}75%{transform:translateX(3px)}}
@keyframes avCast{0%,100%{box-shadow:none}50%{box-shadow:0 0 0 6px #7fd6ff,0 0 22px 8px #7fd6ff}}
.av-dmg{position:absolute;top:-2px;left:14px;z-index:2;font:900 24px/1 Impact,'Arial Black',sans-serif;font-style:normal;color:#e0342c;text-shadow:0 0 3px #fff,0 0 3px #fff,0 2px 0 #fff;pointer-events:none;animation:avRise 1s .3s ease-out both}
.av-side.r .av-dmg{left:auto;right:14px}
.av-dmg.heal{color:#1f8a3a}
@keyframes avRise{0%{opacity:0;transform:translateY(14px) scale(.6)}25%{opacity:1;transform:translateY(-4px) scale(1.25)}100%{opacity:0;transform:translateY(-34px) scale(1)}}
/* final de la batalla */
.av-loot{align-items:center;text-align:center}
.av-win{margin:14px 0 0;font:900 38px/1 Impact,'Arial Black',sans-serif;letter-spacing:1px;color:var(--pz-rub);animation:avBang .6s ease-out both}
.av-dead{width:120px;height:120px;image-rendering:pixelated;image-rendering:crisp-edges;animation:avDie 1.1s .2s ease-in both}
@keyframes avDie{0%{opacity:1;transform:none;filter:none}15%,45%{filter:brightness(3) saturate(0)}30%{filter:none}60%{opacity:1;transform:translateY(0) rotate(0);filter:grayscale(1)}100%{opacity:.18;transform:translateY(18px) rotate(90deg) scale(.8);filter:grayscale(1)}}
.av-won{display:grid;gap:8px;width:min(100%,420px);margin:6px 0 0;padding:0;list-style:none}
.av-won li{display:grid;grid-template-columns:44px 1fr;align-items:center;gap:10px;padding:8px 12px;border:2px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);text-align:left;opacity:0;animation:avPop .45s cubic-bezier(.2,.9,.3,1.3) forwards;animation-delay:calc(.9s + var(--d)*.3s)}
.av-won li em{font-size:28px;font-style:normal;text-align:center}
.av-won li canvas{width:40px;height:40px;image-rendering:pixelated;image-rendering:crisp-edges}
.av-won li b{font:700 16px/1.25 var(--pz-serif)}
.av-won li.rare{border-color:var(--pz-leaf);box-shadow:0 0 0 2px var(--pz-leaf),0 0 16px #e2b93b88}
@keyframes avPop{0%{opacity:0;transform:scale(.5) translateY(14px)}100%{opacity:1;transform:none}}
.av-loot .av-xp{width:min(100%,420px);justify-content:center}
.av-loot .av-xp span i{transition:width 1.1s .9s ease-out}
.av-loot .sy-big{width:min(100%,420px)}
.av-up{animation:avPop .5s 1.6s both}
/* inventario y tienda en casillas */
.av-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:min(100%,440px)}
.av-grid.eq{grid-template-columns:repeat(4,minmax(0,1fr))}
.av-cell{position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;margin:0!important;padding:3px;border:2px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper2);color:var(--pz-ink);cursor:pointer}
.av-cell canvas{width:64%;height:auto;image-rendering:pixelated;image-rendering:crisp-edges}
.av-cell em{font-size:clamp(20px,6.4vw,30px);font-style:normal;line-height:1}
.av-cell small{position:absolute;left:0;right:0;bottom:2px;font:700 10px/1 system-ui,sans-serif;text-align:center;color:var(--pz-soft);white-space:nowrap;overflow:hidden}
.av-cell .av-n{position:absolute;right:3px;top:3px;min-width:18px;padding:1px 4px;border-radius:9px;background:var(--pz-ink);color:var(--pz-paper);font:700 11px/1.3 system-ui,sans-serif;font-style:normal;text-align:center}
.av-cell.on{border-color:var(--pz-rub);box-shadow:0 0 0 2px var(--pz-rub)}
.av-cell.sp{border-color:var(--pz-leaf);background:linear-gradient(135deg,var(--pz-paper2),#e2b93b33)}
.av-cell.void{border-style:dashed;opacity:.45;cursor:default}
.av-cell:disabled{opacity:.5;cursor:default}
.av-cell:focus-visible{outline:3px solid var(--pz-lapis);outline-offset:2px}
.av-detail{min-height:86px;padding:10px 12px;border:1px solid var(--pz-edge);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink);font:14.5px/1.45 var(--pz-serif)}
.av-detail p{margin:0 0 8px}
.av-shopname{font:700 17px/1.2 var(--pz-serif);color:var(--pz-ink)}
@media (prefers-reduced-motion:reduce){.av-flash{display:none}.av-vs .av-side,.av-vs .av-big,.av-x,.av-win,.av-dead,.av-up{animation:none!important}.av-won li{animation:none;opacity:1}.av-dmg{animation:none;opacity:1;top:-14px}.av-loot .av-xp span i{transition:none}}
/* 0.3.94 - rompecabezas de piezas que se deslizan */
.pz-slide{display:grid;grid-template-columns:repeat(var(--c),minmax(0,1fr));grid-template-rows:repeat(var(--r),minmax(0,1fr));gap:2px;max-width:100%;margin:0 auto;padding:2px;border:3px solid #111;background:#111;box-sizing:border-box}
.pz-tile{position:relative;min-width:0;min-height:0;margin:0!important;padding:0;border:0;border-radius:2px;background-color:#fff;background-image:var(--img);background-repeat:no-repeat;cursor:pointer;transition:filter .12s}
.pz-tile:active{filter:brightness(1.15)}
.pz-tile:focus-visible{outline:3px solid #ffd84a;outline-offset:-3px}
.pz-tile i{position:absolute;left:3px;top:3px;min-width:20px;padding:1px 4px;border-radius:10px;background:#111;color:#fff;font:700 12px/1.4 system-ui,sans-serif;font-style:normal;text-align:center}
.pz-gap{border-radius:2px;background:repeating-linear-gradient(45deg,#2b2b2b 0 6px,#1d1d1d 6px 12px)}
.pz-manga.k-slide .pz-fig{height:min(15dvh,112px)}
img.pz-art{object-fit:contain}
.pz-item .pz-thumb img.pz-art{aspect-ratio:160/100;object-fit:cover;border:3px solid #111;box-sizing:border-box}

/* ===== 0.3.94 — Aventura: lo que el enemigo va a hacer, tipos de poder, aura negra */
.av-intent{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:10px;margin:0;padding:8px 12px;border:2px solid var(--pz-ink);border-radius:6px;background:var(--pz-paper);color:var(--pz-ink)}
.av-intent em{font-size:26px;font-style:normal;text-align:center}
.av-intent span{display:grid;gap:2px}
.av-intent b{font:700 15px/1.2 var(--pz-serif)}
.av-intent small{font-size:12.5px;line-height:1.35;color:var(--pz-soft)}
.av-intent.s-embiste{border-color:#c0392b;box-shadow:0 0 0 2px #c0392b;animation:avWarn .6s ease-in-out infinite alternate}
.av-intent.s-guardia,.av-intent.s-reflejo,.av-intent.s-esquiva{border-style:dashed}
@keyframes avWarn{from{background:var(--pz-paper)}to{background:#c0392b26}}
.av-acts button.t-f{border-left:6px solid #c0792c}
.av-acts button.t-m{border-left:6px solid #7a4acb}
.av-acts button.t-d{border-left:6px solid #2f9a6a}
.av-aura{font-style:italic;color:#5b2a7a}
html[data-theme="dark"] .av-aura{color:#c89be6}
.fx-tajo .av-fx{width:26px;height:26px;margin-top:-13px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px var(--pz-rub),-34px 0 0 0 #fff,-34px 0 0 4px var(--pz-rub);animation:avFly .45s ease-out}
.fx-apoyo .av-fx,.fx-foco .av-fx{left:6%;width:44px;height:44px;margin-top:-22px;border-radius:50%;border:4px solid #7fd6ff;box-shadow:0 0 16px #7fd6ff;animation:avFlash .6s ease-out}
.fx-rebote .av-fx{width:30px;height:30px;margin-top:-15px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#b48cff 55%,#5b2a7a);box-shadow:0 0 16px #b48cff;animation:avBounce .7s ease-in-out}
@keyframes avBounce{0%{opacity:1;transform:translateX(0)}50%{opacity:1;transform:translateX(min(56vw,380px))}100%{opacity:0;transform:translateX(0)}}
.av-vs.me-atk.me-hit .av-side:not(.r) .av-big{animation:avLungeR .35s ease-in-out,avHitR .5s .45s}
@media (prefers-reduced-motion:reduce){.av-intent.s-embiste{animation:none}}

/* 0.3.95 - Damas: recuadro grueso en la casilla de salida y la de llegada de la última jugada (se queda hasta que el otro mueve) */
#miniGameStage .checker-cell.ck-from{box-shadow:inset 0 0 0 100px #ffd40070,inset 0 0 0 4px #ff8a00!important;outline:3px dashed #ff6a00;outline-offset:-7px}
#miniGameStage .checker-cell.ck-to{box-shadow:inset 0 0 0 100px #ffd400c2,inset 0 0 0 5px #ff5a00!important;outline:3px solid #fff;outline-offset:-9px;z-index:2}

/* 0.3.95 - Batalla naval: mira roja al apuntar (cursor en PC y dibujo en cada casilla elegida) */
.nv-case.aiming .nv-cell:not(.miss):not(.hit){cursor:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><g fill='none' stroke='%23e5121f' stroke-width='2'><circle cx='16' cy='16' r='10'/><circle cx='16' cy='16' r='4'/><path d='M16 1v8M16 23v8M1 16h8M23 16h8'/></g><circle cx='16' cy='16' r='1.5' fill='%23e5121f'/></svg>") 16 16,crosshair}
.nv-cell.sel{background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><g fill='none' stroke='%23e5121f' stroke-width='2'><circle cx='16' cy='16' r='10'/><circle cx='16' cy='16' r='4'/><path d='M16 1v8M16 23v8M1 16h8M23 16h8'/></g><circle cx='16' cy='16' r='1.5' fill='%23e5121f'/></svg>") center/78% no-repeat,radial-gradient(circle,#ff31312e 0 45%,transparent 70%),#ffffff2e;box-shadow:inset 0 0 0 2px #ff4b4b;z-index:3}
.nv-cell.sel::after{content:"";position:absolute;inset:8%;border:2px dashed #ffffffb0;border-radius:50%;animation:nvScope 2.4s linear infinite}
@keyframes nvScope{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.nv-cell.sel::after{animation:none}}

/* 0.3.95 - Logros a la vista en la portada (al lado del Sudoku del día) */
.art-ach{--svg:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 110' preserveAspectRatio='xMaxYMid slice'><g fill='white' fill-opacity='.18'><circle cx='196' cy='78' r='22'/><circle cx='300' cy='30' r='16'/></g><path d='M232 14h52v22a26 26 0 0 1-52 0z' fill='%23ffd24a'/><path d='M232 20h-14c0 16 7 24 18 24M284 20h14c0 16-7 24-18 24' fill='none' stroke='%23ffd24a' stroke-width='5' stroke-linecap='round'/><path d='M252 62h12v16h-12z' fill='%23ffd24a'/><rect x='236' y='78' width='44' height='12' rx='3' fill='%23ffd24a'/><path d='M258 22l4 8 9 1-7 6 2 9-8-5-8 5 2-9-7-6 9-1z' fill='white' fill-opacity='.85'/></svg>");--bgi:linear-gradient(110deg,#8a4b00,#e09a1a)}
html body .home-menu.soon-row #homeDaily{grid-column:auto}

/* 0.3.95 - Parchimi: capturas Rayo (.pc-kcloud, .pc-kbolt), Bola de fuego (.pc-kfball, .pc-kburn) y Dragón legendario (.pc-kdim, .pc-kdrg, .pc-kflame) */
.pc-kcloud,.pc-kbolt,.pc-kfball,.pc-kburn,.pc-kdim,.pc-kflame{position:absolute;pointer-events:none;z-index:11}
.pc-kghost.char{background:radial-gradient(circle at 40% 35%,#ff9a3a 0 6%,#3a2418 30%,#121010 70%);border-color:#ff7a1a;box-shadow:0 0 10px 2px #ff5a00aa,0 0 0 1px #000;transition:background .2s,box-shadow .2s,left .45s cubic-bezier(.2,.8,.3,1),top .45s cubic-bezier(.2,.8,.3,1),transform .45s cubic-bezier(.2,1.5,.4,1)}
.pc-kfrag.ash{background:#2b2622;filter:drop-shadow(0 0 2px #ff6a00) drop-shadow(0 2px 2px #0008)}
.pc-kcloud{width:36%;height:16%;margin:-8% 0 0 -18%;border-radius:50%;opacity:0;transform:scale(.4);background:radial-gradient(circle at 30% 60%,#4a4e5a 0 32%,#0000 34%),radial-gradient(circle at 55% 40%,#3a3d48 0 36%,#0000 38%),radial-gradient(circle at 76% 62%,#454955 0 30%,#0000 32%),radial-gradient(ellipse at 50% 75%,#2a2c34 0 46%,#0000 48%);filter:drop-shadow(0 4px 6px #000a);transition:opacity .25s,transform .35s cubic-bezier(.2,1.4,.4,1)}
.pc-kcloud.in{opacity:1;transform:scale(1)}.pc-kcloud.out{opacity:0;transform:scale(1.3);transition:opacity .5s,transform .5s}
.pc-kbolt{width:7%;height:17%;margin:-8.5% 0 0 -3.5%;transform:scaleY(0);transform-origin:50% 0;filter:drop-shadow(0 0 6px #fff59a) drop-shadow(0 0 14px #ffd400);transition:transform .07s ease-in}
.pc-kbolt svg{display:block;width:100%;height:100%}
.pc-kbolt.on{transform:scaleY(1);animation:pcKBolt .28s steps(4) .07s 2}
.pc-board.kflash,.shop-stage.kflash{box-shadow:0 0 0 999px #fffbe055 inset;filter:brightness(1.7)}
.pc-kfball{width:9%;height:9%;margin:-4.5% 0 0 -4.5%;border-radius:50%;opacity:0;background:radial-gradient(circle at 60% 60%,#fff 0 14%,#ffe25a 22%,#ff8a1a 48%,#d62000 70%,#0000 74%);filter:drop-shadow(0 0 8px #ff7a1a) drop-shadow(0 0 16px #ff3d00);transition:opacity .2s}
.pc-kfball::before{content:"";position:absolute;right:52%;bottom:52%;width:170%;height:70%;border-radius:50% 0 0 50%;transform:rotate(45deg);transform-origin:100% 100%;background:linear-gradient(90deg,#0000,#ff6a0055 40%,#ffb02ecc);filter:blur(1.5px)}
.pc-kfball.in{opacity:1;animation:pcKFlick .12s linear infinite alternate}
.pc-kfball.go{transition:left .48s cubic-bezier(.5,0,.9,.6),top .48s cubic-bezier(.5,0,.9,.6),opacity .2s}
.pc-kboom.pc-kfire{background:radial-gradient(circle,#fff 0 22%,#ffe25a 23% 42%,#ff6a00 43% 66%,#b31200 67% 78%,#0000 80%)}
.pc-kburn{width:13%;height:15%;margin:-11% 0 0 -6.5%;opacity:0;transform:scale(.3);transform-origin:50% 90%;background:radial-gradient(ellipse at 50% 92%,#fff3 0 10%,#0000 12%),radial-gradient(ellipse at 30% 80%,#ffb02e 0 22%,#0000 24%),radial-gradient(ellipse at 70% 78%,#ffcf3f 0 20%,#0000 22%),radial-gradient(ellipse at 50% 60%,#ff6a00 0 34%,#0000 36%),radial-gradient(ellipse at 50% 35%,#ff3d00aa 0 22%,#0000 24%);clip-path:polygon(50% 0,62% 22%,78% 10%,80% 40%,100% 36%,92% 70%,100% 100%,0 100%,8% 70%,0 36%,20% 40%,22% 10%,38% 22%);filter:drop-shadow(0 0 6px #ff6a00);transition:opacity .15s,transform .25s cubic-bezier(.2,1.5,.4,1)}
.pc-kburn.on{opacity:1;transform:scale(1);animation:pcKBurn .16s linear .25s infinite alternate}
.pc-kburn.big{width:22%;height:25%;margin:-19% 0 0 -11%}
.pc-kdim{left:0!important;top:0!important;width:100%;height:100%;opacity:0;background:radial-gradient(circle at 50% 50%,#2a0a0055,#000b);border-radius:inherit;z-index:8;transition:opacity .4s}
.pc-kdim.on{opacity:1}
.pc-kghost.mid{transform:scale(3.4);z-index:10}
.pc-kghost.pc-kdrg{z-index:12;overflow:visible}
.pc-kghost.pc-kdrg.up{transform:scale(3.2) rotate(-8deg)}
.pc-kghost.pc-kdrg.blow{transform:scale(3.35) rotate(4deg) translate(4%,-4%);transition:transform .2s ease-out}
.pc-kghost.pc-kdrg.out{opacity:0;transition:opacity .4s,transform .4s}
.pc-khelm{position:absolute;left:-30%;top:-62%;width:160%;height:160%;filter:drop-shadow(0 2px 2px #0009);pointer-events:none}
.pc-kflame{height:15%;margin:-7.5% 0 0 0;transform-origin:0 50%;transform:rotate(var(--ang,0deg)) scaleX(0);opacity:1;border-radius:20% 50% 50% 20%/50%;background:radial-gradient(ellipse at 100% 50%,#fff0 0 30%,#0000 31%),linear-gradient(90deg,#fff7c0,#ffe25a 12%,#ff9a1a 40%,#ff4d00 72%,#ff2a0000);clip-path:polygon(0 38%,30% 14%,52% 26%,70% 0,86% 18%,100% 6%,100% 94%,86% 82%,70% 100%,52% 74%,30% 86%,0 62%);filter:drop-shadow(0 0 6px #ff6a00) drop-shadow(0 0 12px #ff3d00);transition:transform .3s cubic-bezier(.2,.8,.3,1),opacity .3s}
.pc-kflame.on{transform:rotate(var(--ang,0deg)) scaleX(1);animation:pcKFlame .1s linear .3s infinite alternate}
.pc-kflame.out{opacity:0;transform:rotate(var(--ang,0deg)) scaleX(1.1)}
.shop-stage .pc-kghost.mid,.shop-stage .pc-kghost.pc-kdrg.up{transform:scale(2.4)}
@keyframes pcKBolt{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes pcKFlick{0%{transform:scale(1) rotate(0)}100%{transform:scale(1.12) rotate(12deg)}}
@keyframes pcKBurn{0%{transform:scale(1,1)}100%{transform:scale(1.08,1.16) translateY(-3%)}}
@keyframes pcKFlame{0%{transform:rotate(var(--ang,0deg)) scale(1,1)}100%{transform:rotate(var(--ang,0deg)) scale(1.04,1.2)}}

/* 0.3.95 - Tienda: «Cambiar» + «Al azar» lado a lado, y los objetos legendarios con borde dorado que brilla */
.shop-btns{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.shop-btn.mixb{background:#f1e9ff;color:#5b2bb5;border-color:#c9b2f5}
html[data-theme="dark"] .shop-btn.mixb{background:#2a1f45;color:#d8c6ff;border-color:#5b44a0}
.shop-item.legend{position:relative;border-color:#e0a400!important;box-shadow:0 0 0 2px #ffd54a66,0 8px 22px #e0a40044;background:linear-gradient(135deg,#fff8e0,#fff 45%,#fff2c7)}
html[data-theme="dark"] .shop-item.legend{background:linear-gradient(135deg,#2e2410,#16233a 50%,#2e2410)}
.shop-item.legend::before{content:"LEGENDARIA";position:absolute;top:-9px;left:12px;padding:2px 8px;border-radius:999px;background:linear-gradient(90deg,#ff9a1a,#ffd54a,#ff9a1a);background-size:200% 100%;color:#4a2a00;font-size:10px;font-weight:900;letter-spacing:.08em;animation:shopLegend 2.4s linear infinite}
@keyframes shopLegend{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.shop-item.legend::before{animation:none}}

/* 0.3.95 - Palabra Oculta y Ahorcado (js/words.js) */
.mini-game.wd{--wg:#2e9e48;--wy:#e3b21c;--wr:#d63a3a;--wt:#fff;--wb:#d4dae4;--wtx:#10213b;max-width:560px;margin:0 auto;padding-bottom:18px}
html[data-theme="dark"] .mini-game.wd{--wt:#16233a;--wb:#2f4366;--wtx:#e9eef7}
.wd-menu{display:flex;flex-direction:column;gap:12px}
.wd-chips,.wd-modes{display:flex;flex-wrap:wrap;gap:8px}
.wd-chips button,.wd-modes button{flex:1 1 0;min-width:96px;padding:9px 10px;border-radius:14px;border:2px solid var(--wb);background:var(--wt);color:var(--wtx);font:inherit;font-weight:800;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px}
.wd-modes button small{font-weight:600;opacity:.7;font-size:11px}
.wd-chips button.on,.wd-modes button.on{border-color:#2a6ee0;background:#e8f0ff;color:#0b3d91;box-shadow:0 0 0 2px #2a6ee055}
html[data-theme="dark"] .wd-chips button.on,html[data-theme="dark"] .wd-modes button.on{background:#1d3566;color:#cfe0ff}
.arc-btn.wd-daily{background:linear-gradient(90deg,#ffb02e,#ffd54a);color:#4a2a00}
.arc-btn.wd-daily.done{background:#e3e8ef;color:#5a6577}
.wd-msg{min-height:22px;margin:6px 0;text-align:center;font-weight:800;color:var(--wtx)}
.wd-msg.bad{color:#d63a3a}
.wd-note{margin:4px 0;text-align:center;font-size:13px;color:var(--wtx);opacity:.8}
.wd-board{display:flex;flex-direction:column;align-items:center;gap:6px;margin:6px auto 12px}
.wd-board.inf{max-height:min(46vh,380px);overflow-y:auto;padding:4px 6px;scroll-behavior:smooth}
.wd-row{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:6px;width:min(100%,calc(var(--n)*62px))}
.wd-t{aspect-ratio:1;display:grid;place-items:center;border:2px solid var(--wb);border-radius:8px;background:var(--wt);color:var(--wtx);font-size:clamp(20px,6vw,32px);font-weight:900;text-transform:uppercase;user-select:none}
.wd-t.typed{border-color:#7d8aa3;animation:wdPop .12s ease-out}
.wd-t.g,.wd-t.y,.wd-t.r{color:#fff;border-color:transparent;text-shadow:0 1px 2px #0005}
.wd-t.g{background:var(--wg)}.wd-t.y{background:var(--wy)}.wd-t.r{background:var(--wr)}
.wd-t.rev{animation:wdFlip .5s ease both;animation-delay:calc(var(--k)*120ms)}
.wd-row.shake{animation:wdShake .35s}
.wd-kbd{display:flex;flex-direction:column;gap:6px;margin:6px auto 0;max-width:520px;user-select:none}
.wd-kbd>div{display:flex;gap:5px;justify-content:center}
.wd-kbd button{flex:1 1 0;max-width:46px;min-width:0;height:52px;border:0;border-radius:8px;background:#d3d8e0;color:#10213b;font:inherit;font-weight:900;font-size:15px;cursor:pointer;touch-action:manipulation}
html[data-theme="dark"] .wd-kbd button{background:#33425e;color:#e9eef7}
.wd-kbd button.wide{flex:1.6 1 0;max-width:74px;font-size:11px}
.wd-kbd button.g{background:var(--wg);color:#fff}.wd-kbd button.y{background:var(--wy);color:#fff}.wd-kbd button.r{background:var(--wr);color:#fff;opacity:.85}
.wd-kbd button:active{transform:translateY(1px)}
.wd-kbd button:disabled{cursor:default}
.wd-k{padding:0 5px;border-radius:5px;color:#fff}.wd-k.g{background:#2e9e48}.wd-k.y{background:#e3b21c}.wd-k.r{background:#d63a3a}
.wd-pick{display:flex;flex-direction:column;gap:10px;padding:6px 2px}
.wd-pick h3{margin:4px 0 0;text-align:center;color:var(--wtx)}
.wd-searchrow{display:flex;gap:8px}
.wd-search{flex:1;min-width:0;padding:12px 14px;border-radius:12px;border:2px solid var(--wb);background:var(--wt);color:var(--wtx);font:inherit;font-size:16px}
.wd-results{display:flex;flex-wrap:wrap;gap:6px;max-height:min(42vh,320px);overflow-y:auto;padding:4px}
.wd-results button{padding:7px 11px;border-radius:999px;border:1.5px solid var(--wb);background:var(--wt);color:var(--wtx);font:inherit;font-weight:700;cursor:pointer}
.wd-results button.on{background:#2a6ee0;border-color:#2a6ee0;color:#fff}
.wd-chosen{margin:0;text-align:center;color:var(--wtx)}
.wd-curtain,.wd-wait{display:flex;flex-direction:column;align-items:center;gap:8px;padding:34px 16px;text-align:center;color:var(--wtx)}
.wd-curtain>span,.wd-wait>span{font-size:46px}
.wd-curtain h3,.wd-wait h3{margin:0}
.wd-vs{margin:4px 0;text-align:center;font-size:14px;color:var(--wtx)}
.wd-foe{display:flex;align-items:center;gap:10px;justify-content:center;margin:4px 0;padding:6px 10px;border-radius:12px;background:#0b3d910f;color:var(--wtx);font-size:13px}
.wd-foe span{display:flex;flex-direction:column;gap:2px}
.wd-foe i{display:flex;gap:2px}
.wd-foe em{width:9px;height:9px;border-radius:2px;background:#ccc}.wd-foe em.g{background:var(--wg)}.wd-foe em.y{background:var(--wy)}.wd-foe em.r{background:var(--wr)}
.wd-score{display:flex;align-items:stretch;justify-content:center;gap:8px;margin:6px 0}
.wd-score>span{flex:1;display:flex;flex-direction:column;align-items:center;padding:6px 8px;border-radius:12px;background:var(--wt);border:2px solid var(--wb);color:var(--wtx);font-weight:800;font-size:13px}
.wd-score>span.set{border-color:#e3b21c}
.wd-score small{font-weight:600;opacity:.7;font-size:11px;text-align:center}
.wd-score b{font-size:22px}
.wd-score>i{align-self:center;font-style:normal;font-weight:900;color:#d62027}
.wd-round{margin:0 0 4px;text-align:center;font-size:12px;color:var(--wtx);opacity:.75}
.wd-hang{display:flex;align-items:center;gap:14px;justify-content:center;margin:6px 0}
.wd-gallows{width:min(36vw,150px);height:auto;flex:none}
.wd-gallows .wd-wood{fill:none;stroke:#8a5a2b;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.wd-gallows .wd-man{fill:none;stroke:var(--wtx);stroke-width:4;stroke-linecap:round}
.wd-gallows .pt.new{animation:wdDraw .45s ease-out}
.wd-gallows.dead .wd-man{stroke:#d63a3a}
.wd-gallows .wd-x{stroke-width:2}
.wd-lives{margin:0;font-size:18px;letter-spacing:2px}
.wd-word{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:12px auto}
.wd-l{width:clamp(26px,8vw,40px);height:clamp(34px,10vw,48px);display:grid;place-items:center;border-bottom:4px solid var(--wtx);color:var(--wtx);font-size:clamp(20px,6vw,30px);font-weight:900}
.wd-l.on{animation:wdPop .25s ease-out}
.wd-l.miss{color:#d63a3a}
.wd-kbd.hm button{height:46px}
@keyframes wdFlip{0%{transform:rotateX(0)}45%{transform:rotateX(90deg);filter:brightness(1.4)}100%{transform:rotateX(0)}}
@keyframes wdPop{0%{transform:scale(.8)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes wdShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
@keyframes wdDraw{0%{opacity:0;transform:scale(.6);transform-origin:70px 60px}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.wd-t.rev,.wd-t.typed,.wd-row.shake,.wd-l.on,.wd-gallows .pt.new{animation:none}}
@media(max-width:400px){.wd-kbd>div{gap:3px}.wd-kbd button{height:46px;font-size:13px}.wd-kbd button.wide{font-size:9px}}

/* 0.3.95 - portada: tarjeta «Rompecabezas» (ocupa la fila entera, debajo de Sudoku del día y Logros) */
.art-rompe{--svg:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 110' preserveAspectRatio='xMaxYMid slice'><g stroke='white' stroke-opacity='.5' stroke-width='3'><rect x='190' y='12' width='28' height='28' rx='5' fill='%23ffd24a'/><rect x='222' y='12' width='28' height='28' rx='5' fill='%23ff7aa8'/><rect x='254' y='12' width='28' height='28' rx='5' fill='%2335c46a'/><rect x='190' y='44' width='28' height='28' rx='5' fill='%2329a8ff'/><rect x='222' y='44' width='28' height='28' rx='5' fill='%23ff9a2e'/><rect x='254' y='44' width='28' height='28' rx='5' fill='none' stroke-dasharray='4 4'/><rect x='190' y='76' width='28' height='28' rx='5' fill='%23b05aff'/><rect x='222' y='76' width='28' height='28' rx='5' fill='%23ffd24a'/><rect x='254' y='76' width='28' height='28' rx='5' fill='%23ff7aa8'/></g><path d='M284 58h22' stroke='white' stroke-width='4' stroke-linecap='round'/><path d='M298 50l8 8-8 8' fill='none' stroke='white' stroke-width='4' stroke-linecap='round'/></svg>");--bgi:linear-gradient(110deg,#5b2bb5,#c0389a)}
html body .home-menu.soon-row #homeRompe{grid-column:1/-1}

/* 0.3.95 - Aventura: jefes, ropa legendaria y el coleccionista */
.av-cell.lg{box-shadow:0 0 0 2px #ffb02e,0 0 10px #ffb02e99;animation:avLeg 1.6s ease-in-out infinite alternate}
.av-grid.lgset .av-cell.miss canvas{filter:grayscale(1) brightness(.45);opacity:.6}
.av-grid.lgset .av-cell.miss{animation:none;box-shadow:none}
.av-won li.legend{background:linear-gradient(90deg,#ff9a1a33,#ffd84a55,#ff9a1a33);border-color:#ffb02e;animation:avLeg 1.2s ease-in-out infinite alternate}
.av-collect{display:flex;gap:12px;align-items:flex-start}
.av-collect .av-face{width:56px;height:56px;flex:none;image-rendering:pixelated}
.av-collect p{margin:0;font-style:italic}
.av-fight.boss .av-side.r .av-big{filter:drop-shadow(0 0 6px #ff2a2a)}
.av-fight.boss .av-side.r b{color:#e0342c}
@keyframes avLeg{from{box-shadow:0 0 0 2px #ffb02e,0 0 6px #ffb02e66}to{box-shadow:0 0 0 2px #ffe08a,0 0 14px #ffb02ecc}}
@media(prefers-reduced-motion:reduce){.av-cell.lg,.av-won li.legend{animation:none}}

/* 0.3.95 - Radio de bachata en la mesa de dominó (js/radio.js) */
.rd-btn{position:fixed;right:14px;bottom:calc(86px + env(safe-area-inset-bottom));z-index:1200;width:54px;height:54px;border-radius:50%;border:3px solid #fff;background:radial-gradient(circle at 35% 30%,#ff7a5a,#c0392b);box-shadow:0 6px 16px #0006;display:grid;place-items:center;font-size:26px;cursor:pointer}
.rd-btn.hidden{display:none}
.rd-btn i{position:absolute;right:-2px;top:-2px;width:14px;height:14px;border-radius:50%;background:#7d8796;border:2px solid #fff}
.rd-btn.on i{background:#35e04a;box-shadow:0 0 8px #35e04a}
.rd-btn.on span{animation:rdBop .47s ease-in-out infinite alternate}
.rd-panel{position:fixed;right:12px;bottom:calc(150px + env(safe-area-inset-bottom));z-index:1201;width:min(320px,calc(100vw - 24px));max-height:min(70vh,520px);overflow-y:auto;padding:14px;border-radius:18px;background:#fff8ec;color:#3a2414;box-shadow:0 14px 40px #0007;border:3px solid #c0392b}
html[data-theme="dark"] .rd-panel{background:#2a1c14;color:#ffe8cf}
.rd-head{display:flex;justify-content:space-between;align-items:center;font-size:17px}
.rd-x{border:0;background:none;font-size:18px;cursor:pointer;color:inherit}
.rd-now{margin:8px 0;font-size:14px}
.rd-ctl{display:flex;gap:8px}
.rd-ctl button,.rd-shop{flex:1;padding:10px;border-radius:12px;border:0;background:#c0392b;color:#fff;font:inherit;font-weight:800;cursor:pointer}
.rd-ctl button:disabled{opacity:.45}
.rd-vol{display:flex;align-items:center;gap:8px;margin:10px 0}
.rd-vol input{flex:1}
.rd-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.rd-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:10px;background:#00000010}
.rd-list li.on{background:#ffd27a66}
.rd-list li.lock{opacity:.6}
.rd-list button{border:0;background:none;font:inherit;font-weight:800;color:inherit;text-align:left;cursor:pointer}
.rd-list small{opacity:.75;white-space:nowrap}
.rd-shop{width:100%;background:#2a6ee0}
@keyframes rdBop{from{transform:rotate(-8deg) scale(1)}to{transform:rotate(8deg) scale(1.08)}}
@media(prefers-reduced-motion:reduce){.rd-btn.on span{animation:none}}

/* 0.3.97 - tableros grandes: 4 en línea 9 × 7 y Memoria 6 × 4 */
.connect-board.big,#miniGameStage .connect-board.big{aspect-ratio:var(--c4w)/var(--c4h);grid-template-columns:repeat(var(--c4w),minmax(0,1fr));grid-template-rows:repeat(var(--c4h),minmax(0,1fr));gap:4px}
.mem-grid.big{grid-template-columns:repeat(6,1fr);max-width:520px;gap:6px}

/* 0.3.97 - frases y reloj de turno en las salas online (js/table-talk.js) */
.tt-box{position:fixed;left:12px;bottom:calc(86px + env(safe-area-inset-bottom));z-index:1190;display:flex;align-items:flex-end;gap:8px}
.tt-box.hidden{display:none}
.tt-btn{width:50px;height:50px;border-radius:50%;border:3px solid #fff;background:#2a6ee0;color:#fff;font-size:22px;box-shadow:0 6px 14px #0005;cursor:pointer}
.tt-clock{padding:6px 10px;border-radius:999px;background:#10213bdd;color:#fff;font-size:12px;font-weight:800;white-space:nowrap}
.tt-clock.mine{background:#2e9e48e6}.tt-clock.slow{background:#d62027e6;animation:ttSlow 1s ease-in-out infinite alternate}
.tt-clock.hidden{display:none}
.tt-panel{position:absolute;left:0;bottom:60px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:min(300px,calc(100vw - 24px));padding:10px;border-radius:16px;background:#fff;box-shadow:0 12px 30px #0006}
html[data-theme="dark"] .tt-panel{background:#16233a}
.tt-panel.hidden{display:none}
.tt-panel button{padding:8px;border-radius:10px;border:1.5px solid #d4dae4;background:#f4f7fc;color:#10213b;font:inherit;font-weight:700;cursor:pointer}
html[data-theme="dark"] .tt-panel button{background:#22314d;color:#e9eef7;border-color:#2f4366}
.tt-bubble{position:fixed;left:50%;top:84px;z-index:1300;transform:translate(-50%,-20px);opacity:0;padding:8px 16px;border-radius:16px;background:#fff;color:#10213b;box-shadow:0 10px 26px #0005;display:flex;flex-direction:column;align-items:center;pointer-events:none;transition:opacity .25s,transform .25s}
.tt-bubble.show{opacity:1;transform:translate(-50%,0)}.tt-bubble.mine{background:#e8f0ff}
.tt-bubble small{font-weight:800;opacity:.7}.tt-bubble b{font-size:17px}
@keyframes ttSlow{from{transform:scale(1)}to{transform:scale(1.06)}}

/* 0.3.97 - mesa online de Blackjack (js/card-tables.js) */
.bj-table.ct{gap:10px}
.ct-seats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;width:100%}
.ct-seat{display:flex;flex-direction:column;gap:4px;padding:8px;border-radius:14px;background:#ffffff1f;border:2px solid #ffffff33;color:#fff;min-height:96px}
.ct-seat.turn{border-color:#ffd54a;box-shadow:0 0 0 2px #ffd54a66}
.ct-seat.me{background:#ffffff33}
.ct-seat.away{opacity:.6}
.ct-who{display:flex;align-items:center;gap:6px;font-size:13px}
.ct-who b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-who i{font-style:normal;font-weight:800;color:#ffe08a}
.ct-hand{display:flex;flex-direction:column;gap:2px;padding:3px;border-radius:8px}
.ct-hand.on{background:#ffd54a33}
.ct-hand .bj-cards{gap:2px;flex-wrap:wrap}
.ct-seat small{font-size:11px;opacity:.9}
.ct-seat em{font-style:normal;font-weight:900}.ct-seat em.win{color:#7dff8a}.ct-seat em.lose{color:#ff8a8a}

/* 0.3.97 - mesa de Blackjack: las cartas de los asientos no vuelven a animarse en cada jugada de los demás */
.ct-seat .bj-card{animation:none}
.ct-hand .bj-cards{min-height:46px;justify-content:flex-start;padding-left:10px}
.ct-seat small{color:#fff;opacity:1;text-shadow:0 1px 2px #0008}

/* 0.3.98 (roadmap 5.1) - iconos propios en lugar de emojis (js/icons.js) */
.si{display:inline-flex;width:1.2em;height:1.2em;margin-right:.35em;vertical-align:-.22em;flex:none}
.si svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#homeDropdown .dropdown-option>span:first-child .si,.pf-more button>span .si{width:1.4em;height:1.4em;margin:0}
.ach-title .si{width:1.05em;height:1.05em}
/* 0.3.98 (roadmap 5.5) - adornos dibujados en el fondo de la portada: dominó, palma, estrellas y una cuadrícula de sudoku que flotan despacio */
#homeScreen{position:relative;isolation:isolate}
#homeScreen::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.16;
 background:
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 100'><rect x='4' y='4' width='52' height='92' rx='10' fill='none' stroke='%230b3d91' stroke-width='4'/><path d='M10 50h40' stroke='%230b3d91' stroke-width='3'/><g fill='%230b3d91'><circle cx='20' cy='20' r='5'/><circle cx='40' cy='35' r='5'/><circle cx='30' cy='70' r='5'/><circle cx='18' cy='82' r='5'/><circle cx='42' cy='60' r='5'/></g></svg>") left 3% top 260px/46px no-repeat,
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><path d='M50 96q4-40-6-70' stroke='%23d62027' stroke-width='6' fill='none' stroke-linecap='round'/><g fill='%23d62027'><path d='M44 26q-30-8-42 10q24-8 42-10z'/><path d='M44 26q-4-24 26-30q-20 12-26 30z'/><path d='M44 26q30-10 50 8q-28-4-50-8z'/></g></svg>") right 2% top 520px/70px no-repeat,
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><path d='M20 2l5 12 13 1-10 8 3 13-11-7-11 7 3-13-10-8 13-1z' fill='%23ffb300'/></svg>") left 46% top 40px/22px no-repeat,
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><path d='M20 2l5 12 13 1-10 8 3 13-11-7-11 7 3-13-10-8 13-1z' fill='%230b3d91'/></svg>") right 12% top 980px/18px no-repeat,
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 90'><g fill='none' stroke='%230b3d91' stroke-width='2'><rect x='3' y='3' width='84' height='84' rx='6'/><path d='M31 3v84M59 3v84M3 31h84M3 59h84'/></g><g font-family='Arial' font-weight='900' font-size='18' fill='%23d62027' text-anchor='middle'><text x='17' y='24'>5</text><text x='73' y='52'>3</text><text x='45' y='80'>8</text></g></svg>") left 1% top 900px/80px no-repeat;
 animation:homeFloat 14s ease-in-out infinite alternate}
@keyframes homeFloat{from{background-position:left 3% top 260px,right 2% top 520px,left 46% top 40px,right 12% top 980px,left 1% top 900px}to{background-position:left 4% top 248px,right 3% top 532px,left 47% top 50px,right 11% top 968px,left 2% top 912px}}
html[data-theme="dark"] #homeScreen::before{opacity:.22;filter:invert(1) hue-rotate(180deg)}
@media(prefers-reduced-motion:reduce){#homeScreen::before{animation:none}}

/* 0.3.99 - banderas dibujadas en Fichas deslizantes */
.slflag{width:1.5em;height:1em;vertical-align:-.12em;border-radius:2px;box-shadow:0 1px 2px #0004}
.slt b .slflag{width:1.9em;height:1.27em}

/* 0.3.99 - Puntos y cajas 8 x 8 */
.dots-board.w8{--dot:9px;grid-template-columns:repeat(8,var(--dot) 1fr) var(--dot);grid-template-rows:repeat(8,var(--dot) 1fr) var(--dot);width:min(100%,500px)}

/* 0.3.99 - radio: pestañas (canciones de SUDOMI, mi música, YouTube/Spotify) y el reproductor de fuera */
.rd-tabs{display:flex;gap:4px;margin:8px 0}
.rd-tabs button{flex:1;padding:7px 4px;border-radius:10px;border:1.5px solid #c0392b55;background:transparent;color:inherit;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.rd-tabs button.on{background:#c0392b;color:#fff;border-color:#c0392b}
.rd-note{margin:6px 0;font-size:13px;opacity:.85}.rd-note.small{font-size:11px}
.rd-pick,.rd-go{padding:10px;border-radius:12px;border:0;background:#2a6ee0;color:#fff;font:inherit;font-weight:800;cursor:pointer}
.rd-pick{width:100%;margin-bottom:8px}
.rd-linkrow{display:flex;gap:6px}
.rd-link{flex:1;min-width:0;padding:9px 10px;border-radius:10px;border:1.5px solid #c0392b55;font:inherit;font-size:14px}
.rd-err{margin:4px 0;color:#d62027;font-size:12px;font-weight:700}
.rd-slot{height:152px;margin-top:6px;border-radius:12px;background:#0001}
.rd-slot.tall{height:352px}
.rd-ext{position:fixed;z-index:1202;height:152px;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #0004}
.rd-ext.tall{height:352px}
.rd-ext.off{left:-10000px!important;top:0!important;width:300px!important;visibility:visible}
.rd-ext iframe{width:100%;height:100%;border:0;display:block}

/* 0.3.100: modo admin (js/admin.js) y canjear códigos de regalo */
.shop-bank .gift-btn{margin-left:auto;font-size:.85rem}
.adm-p{margin:.2rem 0 .6rem;line-height:1.4}
.adm-p.small{font-size:.86rem;opacity:.85}
.adm-box{border:1px solid rgba(128,128,128,.3);border-radius:14px;padding:.7rem .8rem;margin:0 0 .8rem}
.adm-box.warn{border-color:#e0a100;background:rgba(224,161,0,.08)}
.adm-box h3{margin:0 0 .5rem;font-size:1rem}
.adm-row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:.35rem 0}
.adm-num,.adm-gift,.adm-pin,.adm-pin2{flex:1 1 8rem;min-width:0;padding:.55rem .7rem;border-radius:10px;border:1px solid rgba(128,128,128,.45);font:inherit;background:transparent;color:inherit}
.adm-pin,.adm-pin2{display:block;width:100%;box-sizing:border-box;margin:0 0 .5rem}
.adm-code{display:block;width:100%;box-sizing:border-box;padding:.5rem;border-radius:10px;border:1px solid rgba(128,128,128,.45);font:.8rem/1.35 ui-monospace,Consolas,monospace;background:transparent;color:inherit;word-break:break-all;resize:vertical;margin:.3rem 0 .5rem}
.adm-msg{min-height:1.2em;margin:.4rem 0 0;font-weight:600}
.adm-msg.ok{color:#1a9b4b}
.adm-msg.bad{color:#d33}
.adm-log{margin-top:.4rem;font-size:.85rem}
.adm-log div{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap;padding:.2rem 0}
.adm-log code{font-size:.75rem;opacity:.75}
.adm-mini{font:inherit;font-size:.75rem;padding:.1rem .5rem;border-radius:8px;border:1px solid rgba(128,128,128,.45);background:transparent;color:inherit;cursor:pointer}
.adm-out-btn{width:100%;margin-top:.2rem}
.adm-bot{position:fixed;left:12px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:9000;width:52px;height:52px;border-radius:50%;border:2px solid rgba(255,255,255,.7);background:#5b5f6b;color:#fff;font-size:26px;line-height:1;box-shadow:0 4px 14px rgba(0,0,0,.35);cursor:pointer;opacity:.85}
.adm-bot.on{background:#1a9b4b;opacity:1;animation:admPulse 1.2s ease-in-out infinite}
.adm-bot.hidden{display:none}
@keyframes admPulse{50%{transform:scale(1.08)}}
