:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#020617;color:#f8fafc}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button{font:inherit;color:inherit}.zp-shell{height:100dvh;display:flex;flex-direction:column;background:radial-gradient(circle at 50% 0,#172554 0,#06111f 30%,#020617 72%);position:relative}.zp-hud{height:64px;min-height:64px;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid rgba(148,163,184,.15);background:rgba(2,6,23,.86);backdrop-filter:blur(12px);z-index:5}.zp-title-wrap{display:flex;align-items:center;gap:10px;min-width:0}.zp-title-wrap>div{min-width:0}.zp-title-wrap strong{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:310px}.zp-title-wrap small{display:block;color:#94a3b8;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px;margin-top:2px}.zp-dot{width:11px;height:11px;border-radius:50%;background:#22d3ee;box-shadow:0 0 18px #22d3ee;flex:0 0 auto}.zp-stats{display:flex;align-items:center;gap:7px}.zp-stats>div{min-width:54px;text-align:right}.zp-stats span{display:block;color:#64748b;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.zp-stats b{font-size:13px;color:#e2e8f0}.zp-stats b.pop{animation:pop .3s ease}.zp-stats button{width:34px;height:34px;border:1px solid rgba(148,163,184,.2);border-radius:10px;background:#0f172a;cursor:pointer;font-size:19px}.zp-stage{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:8px}.zp-stage.canvas-stage{padding:0 0 0}.zp-canvas{display:block;max-width:100%;max-height:100%;width:min(100%,720px);height:auto;aspect-ratio:1/1;touch-action:none}.zp-stage.dom-stage{overflow:auto;overscroll-behavior:contain;align-items:stretch}.zp-toast{position:absolute;top:78px;left:50%;transform:translate(-50%,-15px);opacity:0;pointer-events:none;background:#064e3b;border:1px solid #34d399;color:#d1fae5;padding:8px 14px;border-radius:999px;font-size:12px;font-weight:800;z-index:20;transition:.18s}.zp-toast[data-tone=bad]{background:#4c0519;border-color:#fb7185;color:#ffe4e6}.zp-toast[data-tone=neutral]{background:#172554;border-color:#60a5fa;color:#dbeafe}.zp-toast.show{opacity:1;transform:translate(-50%,0)}.zp-end{position:absolute;inset:64px 0 0;background:rgba(2,6,23,.8);backdrop-filter:blur(8px);z-index:30;display:grid;place-items:center;padding:24px}.zp-end[hidden]{display:none}.zp-end-card{width:min(92vw,390px);padding:28px;border:1px solid rgba(96,165,250,.35);border-radius:24px;background:linear-gradient(145deg,#0f172a,#020617);text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.45)}.zp-end-card small{font-weight:900;letter-spacing:.18em;color:#60a5fa}.zp-end-card h2{font-size:28px;margin:8px 0}.zp-end-card p{font-size:13px;line-height:1.5;color:#94a3b8}.zp-end-card button,.roll-btn{border:0;border-radius:14px;background:linear-gradient(135deg,#2563eb,#06b6d4);padding:12px 20px;font-weight:900;cursor:pointer}.zp-pad{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);display:none;gap:7px;z-index:8}.zp-pad button{min-width:52px;height:44px;border:1px solid rgba(148,163,184,.24);border-radius:13px;background:rgba(15,23,42,.88);font-weight:900}.zp-pad .wide{min-width:72px}.subtle,.game-note{font-size:11px;color:#94a3b8;text-align:center;margin:8px}.dom-stage::-webkit-scrollbar{width:0}.sudoku-wrap{margin:auto;width:min(94vw,560px);display:grid;gap:12px;align-content:center;min-height:100%}.sudoku-board{display:grid;grid-template-columns:repeat(9,1fr);aspect-ratio:1;border:2px solid #38bdf8;background:#334155;gap:1px}.s-cell{border:0;background:#0f172a;font-size:clamp(15px,4vw,24px);font-weight:800;cursor:pointer}.s-cell.given{background:#1e293b;color:#cbd5e1}.s-cell.selected{outline:3px solid #22d3ee;z-index:1}.s-cell.wrong{color:#fb7185}.s-cell:nth-child(3n){border-right:2px solid #38bdf8}.s-cell:nth-child(9n){border-right:0}.s-cell:nth-child(n+19):nth-child(-n+27),.s-cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid #38bdf8}.num-pad{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.num-pad button{height:42px;border:1px solid #334155;border-radius:11px;background:#0f172a;font-weight:900}.num-pad .erase{color:#fb7185}.card-game{margin:auto;width:min(100%,930px);min-height:100%;padding:10px;display:flex;flex-direction:column;gap:12px}.card-top{display:flex;align-items:center;gap:9px;min-height:74px}.stock,.foundation,.hold,.auto{height:62px;min-width:52px;border:1px solid #334155;border-radius:11px;background:#0f172a;color:#e2e8f0;font-weight:900;position:relative}.stock{background:repeating-linear-gradient(45deg,#1d4ed8,#1d4ed8 6px,#1e40af 6px,#1e40af 12px)}.stock small,.stock.wide small{display:block;font-size:9px}.stock.wide{min-width:100px}.waste{width:52px}.slot{height:62px;border:1px dashed #334155;border-radius:11px;display:grid;place-items:center;color:#64748b;font-size:10px}.foundations{display:flex;gap:6px;margin-left:auto}.foundation{background:#052e2b;color:#a7f3d0}.tableau{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;align-items:start;min-height:340px}.tableau.eight{grid-template-columns:repeat(8,1fr)}.lane{min-height:270px;border-radius:10px;background:rgba(15,23,42,.5);padding:3px;display:flex;flex-direction:column;align-items:center}.card{width:min(58px,100%);height:78px;border:1px solid #94a3b8;border-radius:8px;background:#f8fafc;color:#0f172a;font-weight:900;box-shadow:0 3px 8px rgba(0,0,0,.28);margin-top:-50px;position:relative;padding:5px;display:flex;justify-content:space-between;align-items:flex-start}.lane .card:first-child{margin-top:0}.card.red{color:#dc2626}.card i{font-style:normal;font-size:20px}.card.picked{outline:3px solid #22d3ee;transform:translateY(-4px)}.clear-meter{margin-left:auto;padding:12px 16px;border:1px solid #334155;border-radius:12px;color:#94a3b8}.clear-meter b{color:#fff}.cell-row{display:flex;gap:5px}.hold{min-width:60px}.auto{margin-left:4px;background:#1d4ed8}.grid3{margin:auto;display:grid;grid-template-columns:repeat(3,1fr);width:min(88vw,460px);aspect-ratio:1;gap:7px}.g3{border:1px solid #334155;border-radius:18px;background:#0f172a;font-size:clamp(46px,14vw,86px);font-weight:900}.g3.x{color:#22d3ee;text-shadow:0 0 25px #22d3ee}.g3.o{color:#fb7185;text-shadow:0 0 25px #fb7185}.merge-wrap{margin:auto;width:min(92vw,520px)}.merge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#111827;padding:9px;border-radius:20px;aspect-ratio:1}.tile{display:grid;place-items:center;border-radius:13px;background:#1e293b;font-size:clamp(20px,6vw,36px);font-weight:950;color:#f8fafc}.t2{background:#334155}.t4{background:#475569}.t8{background:#1d4ed8}.t16{background:#0369a1}.t32{background:#0f766e}.t64{background:#15803d}.t128{background:#a16207}.t256{background:#c2410c}.t512{background:#be123c}.t1024{background:#7e22ce}.t2048,.t4096{background:#eab308;color:#111827;box-shadow:0 0 25px rgba(234,179,8,.35)}.draughts{margin:auto;display:grid;grid-template-columns:repeat(8,1fr);width:min(92vw,560px);aspect-ratio:1;border:5px solid #334155;border-radius:8px;overflow:hidden}.sq{border:0;padding:0;display:grid;place-items:center}.sq.light{background:#cbd5e1}.sq.dark{background:#475569}.sq.selected{box-shadow:inset 0 0 0 4px #22d3ee}.sq.legal{box-shadow:inset 0 0 0 5px #34d399}.piece{width:72%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 -8px 0 rgba(0,0,0,.22),0 4px 8px rgba(0,0,0,.3);font-size:20px}.piece.r{background:#fb7185}.piece.b{background:#60a5fa}.piece.king{outline:3px solid #fbbf24}.trick-game{margin:auto;width:min(96vw,720px);min-height:100%;display:grid;grid-template-rows:auto 1fr auto auto;align-items:center;gap:8px;padding:10px}.opponents{display:flex;justify-content:space-between;color:#94a3b8;font-size:11px}.trick-pile{position:relative;min-height:220px;display:grid;place-items:center}.trick-card{position:absolute;width:70px;height:96px;border-radius:9px;background:#f8fafc;color:#0f172a;border:1px solid #cbd5e1;padding:7px;font-weight:900;display:flex;justify-content:space-between}.trick-card i{font-style:normal;font-size:22px}.trick-card.p0{transform:translateY(62px)}.trick-card.p1{transform:translateX(-75px) rotate(-7deg)}.trick-card.p2{transform:translateY(-62px)}.trick-card.p3{transform:translateX(75px) rotate(7deg)}.hand{display:flex;justify-content:center;overflow:visible;padding:5px 18px}.hand-card{width:50px;height:74px;border:1px solid #94a3b8;border-radius:8px;background:#f8fafc;color:#0f172a;margin-left:-13px;padding:5px;font-weight:900;display:flex;justify-content:space-between;align-items:flex-start;transition:.12s}.hand-card:first-child{margin-left:0}.hand-card.red{color:#dc2626}.hand-card i{font-style:normal;font-size:18px}.hand-card.legal:hover,.hand-card.legal:focus{transform:translateY(-10px);outline:2px solid #22d3ee}.word-layout{margin:auto;width:min(96vw,700px);display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:12px;align-items:center}.word-grid{display:grid;grid-template-columns:repeat(10,1fr);aspect-ratio:1;background:#1e293b;gap:2px;padding:4px;border-radius:14px;touch-action:none}.word-grid button{border:0;border-radius:5px;background:#0f172a;font-weight:900;font-size:clamp(11px,3.5vw,22px)}.word-grid button.selecting{background:#1d4ed8}.word-grid button.hit{background:#047857;color:#d1fae5}.word-list{display:flex;flex-direction:column;gap:7px}.word-list span{padding:7px 8px;border:1px solid #334155;border-radius:8px;color:#cbd5e1;font-size:11px;font-weight:900}.word-list span.found{text-decoration:line-through;color:#34d399;border-color:#065f46}.dice-game{margin:auto;width:min(96vw,700px);padding:10px}.dice-row{display:flex;justify-content:center;gap:8px;margin-bottom:10px}.die{width:78px;height:88px;border:2px solid #334155;border-radius:15px;background:#f8fafc;color:#0f172a;font-size:42px;display:flex;flex-direction:column;align-items:center;justify-content:center}.die small{font-size:8px;height:10px;color:#2563eb}.die.held{transform:translateY(-7px);border-color:#22d3ee;box-shadow:0 0 20px rgba(34,211,238,.3)}.roll-btn{display:block;margin:0 auto 10px;min-width:190px}.roll-btn span{opacity:.75;font-size:10px;margin-left:8px}.scorecard{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.scorecard button{height:36px;border:1px solid #334155;border-radius:9px;background:#0f172a;display:flex;align-items:center;justify-content:space-between;padding:0 10px;font-size:11px}.scorecard button:disabled{opacity:.5}.scorecard b{color:#fbbf24}@keyframes pop{50%{transform:scale(1.3);color:#22d3ee}}
@media(max-width:600px){.zp-hud{height:58px;min-height:58px;padding:6px 8px}.zp-title-wrap strong{font-size:13px;max-width:145px}.zp-title-wrap small{max-width:160px}.zp-stats{gap:4px}.zp-stats>div{min-width:42px}.zp-stats button{width:30px;height:30px}.zp-end{inset:58px 0 0}.zp-pad{display:flex}.card-game{padding:4px}.card-top{min-height:56px;gap:4px}.stock,.foundation,.hold,.auto{height:50px;min-width:40px;font-size:10px}.foundations{gap:3px}.waste{width:40px}.slot{height:50px}.tableau{gap:2px}.lane{padding:1px;min-height:280px}.card{height:62px;font-size:10px;margin-top:-40px;padding:3px;border-radius:6px}.card i{font-size:15px}.tableau.eight .card{font-size:9px}.tableau.eight .card i{font-size:12px}.clear-meter{padding:8px;font-size:10px}.cell-row{gap:2px}.hold{min-width:43px}.word-layout{grid-template-columns:1fr;gap:7px}.word-list{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.word-list span{padding:4px;font-size:9px;text-align:center}.trick-pile{min-height:170px}.hand{padding:4px 10px}.hand-card{width:39px;height:60px;margin-left:-12px;font-size:9px;padding:3px}.hand-card i{font-size:13px}.dice-row{gap:5px}.die{width:58px;height:68px;font-size:34px}.scorecard button{height:31px;font-size:10px}.sudoku-wrap{align-content:start;padding-top:5px}.num-pad button{height:37px}}
@media(max-height:650px){.zp-hud{height:54px;min-height:54px}.zp-title-wrap small{display:none}.zp-pad{bottom:4px}.sudoku-wrap{grid-template-columns:minmax(0,1fr) 110px;align-items:center}.sudoku-board{max-height:520px}.num-pad{grid-template-columns:repeat(2,1fr)}.num-pad button{height:34px}.dice-game{padding:3px}.die{height:58px}.scorecard button{height:27px}.trick-pile{min-height:150px}.card-game{padding:3px}.card-top{min-height:48px}.tableau{min-height:240px}.card{height:58px}.zp-end{inset:54px 0 0}}