*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--card-w: clamp(72px, 22vw, 120px);--card-h: calc(var(--card-w) * 4 / 3);--card-radius: calc(var(--card-w) * .14);--card-overlap: calc(var(--card-w) * .39);--card-fan: calc(var(--card-w) * .35);--stock-layer-step: 4px;--stock-area-min-h: calc(var(--card-h) + 3 * var(--stock-layer-step));--bg-center: #2e9455;--bg-edge: #12442a;--slot-border: rgba(255,255,255,.28);--cat-A-color: #e53e3e;--cat-A-bg: #fff5f5;--cat-A-border: #fca5a5;--cat-B-color: #3182ce;--cat-B-bg: #ebf8ff;--cat-B-border: #93c5fd;--cat-C-color: #16a34a;--cat-C-bg: #f0fdf4;--cat-C-border: #86efac;--cat-D-color: #7c3aed;--cat-D-bg: #f5f3ff;--cat-D-border: #c4b5fd;--cat-E-color: #d97706;--cat-E-bg: #fffbeb;--cat-E-border: #fcd34d;--cat-F-color: #0891b2;--cat-F-bg: #ecfeff;--cat-F-border: #67e8f9;--cat-G-color: #ea580c;--cat-G-bg: #fff7ed;--cat-G-border: #fdba74;--cat-H-color: #475569;--cat-H-bg: #f8fafc;--cat-H-border: #94a3b8;--cat-I-color: #db2777;--cat-I-bg: #fdf2f8;--cat-I-border: #f9a8d4;--cat-J-color: #0d9488;--cat-J-bg: #f0fdfa;--cat-J-border: #5eead4;--cat-K-color: #65a30d;--cat-K-bg: #f7fee7;--cat-K-border: #bef264;--cat-L-color: #4f46e5;--cat-L-bg: #eef2ff;--cat-L-border: #a5b4fc}html,body{width:100%;height:100%;overflow:hidden;touch-action:none;-webkit-tap-highlight-color:transparent;background:radial-gradient(ellipse at 50% 30%,var(--bg-center) 0%,var(--bg-edge) 100%);font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#fff}#app{display:flex;flex-direction:column;align-items:stretch;gap:min(14px,3vw);padding:calc(min(14px,3vw) + env(safe-area-inset-top,0px)) min(10px,2.5vw) calc(10px + env(safe-area-inset-bottom,0px)) min(10px,2.5vw);min-height:100dvh;max-width:520px;margin-left:auto;margin-right:auto}#top-bar{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:10px;min-height:44px}#menu-btn{position:relative;background:#00000038;border:1px solid rgba(255,255,255,.18);color:#fff;font-size:18px;width:40px;height:40px;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s;line-height:1}#menu-btn:hover{background:#00000061;transform:scale(1.05)}#menu-btn:active{transform:scale(.95)}#moves-counter{background:#00000047;border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:6px 20px;font-size:13px;display:flex;gap:8px;align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#moves-counter .label{opacity:.7;letter-spacing:.3px}#moves-value{font-size:20px;font-weight:800;letter-spacing:-.5px;min-width:2.2ch;text-align:center}#moves-counter.low-steps #moves-value{color:#fbbf24}#moves-counter.critical-steps #moves-value{color:#f87171}#menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000085;display:flex;align-items:center;justify-content:center;z-index:900;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}#menu-overlay.hidden{display:none}.overlay-corner-back{position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);left:16px;min-height:52px;padding:0 18px 0 13px;border-radius:999px;border:1px solid rgba(255,255,255,.4);background:#ffffffeb;color:#2a2a2a;cursor:pointer;font-size:15px;font-weight:600;z-index:902;box-shadow:0 8px 24px #0003;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:inline-flex;align-items:center;gap:8px;transition:transform .08s ease,background .15s ease,box-shadow .15s ease}.overlay-corner-back:hover{background:#fffffffa;box-shadow:0 10px 28px #00000038}.overlay-corner-back:active{transform:scale(.97)}.overlay-corner-back .back-icon{width:24px;height:24px;border-radius:50%;background:#00000012;display:inline-flex;align-items:center;justify-content:center;font-size:14px}#menu-panel{background:#fff;color:#333;border-radius:22px;padding:28px 36px 32px;display:flex;flex-direction:column;gap:12px;min-width:230px;align-items:stretch;box-shadow:0 20px 60px #00000059}#menu-title{text-align:center;font-size:17px;font-weight:700;margin-bottom:6px;color:#16a34a}.menu-action-btn{display:flex;align-items:center;gap:12px;padding:14px 18px;border:none;border-radius:14px;font-size:15px;font-weight:600;cursor:pointer;background:#16a34a;color:#fff;transition:background .15s,transform .1s;box-shadow:0 2px 8px #16a34a4d}.menu-action-btn:hover{background:#15803d;transform:scale(1.02)}.menu-action-btn:active{transform:scale(.97)}.menu-action-btn.secondary{background:#f3f4f6;color:#374151;box-shadow:none}.menu-action-btn.secondary:hover{background:#e5e7eb}.menu-icon{font-size:18px;width:22px;text-align:center}#level-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000085;display:flex;align-items:center;justify-content:center;z-index:901;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}#level-overlay.hidden{display:none}#level-page{position:relative;width:min(420px,92vw);max-height:82vh;overflow-y:auto;background:#fff;color:#333;border-radius:22px;padding:20px 18px 18px;box-shadow:0 20px 60px #00000059}#level-title{text-align:center;margin-bottom:14px;color:#16a34a;font-size:17px;font-weight:700}#menu-level-grid{display:flex;flex-direction:column;gap:8px}.menu-level-btn{border:1.5px solid #e5e7eb;border-radius:12px;background:#fff;color:#374151;font-size:15px;font-weight:600;padding:13px 14px;text-align:left;cursor:pointer;transition:background .1s,border-color .1s}.menu-level-btn:hover{background:#f9fafb;border-color:#d1d5db}.menu-level-btn.active{border-color:#16a34a;background:#f0fdf4;color:#15803d;font-weight:700}#foundation-area{display:flex;gap:min(8px,2vw);padding-top:22px;overflow-x:auto;overflow-y:visible;scrollbar-width:none;-ms-overflow-style:none;width:100%;padding-bottom:4px}#foundation-area::-webkit-scrollbar{display:none}.foundation-slot{width:var(--card-w);height:var(--card-h);border:2px dashed var(--slot-border);border-radius:var(--card-radius);display:flex;align-items:center;justify-content:center;position:relative;transition:border-color .15s,background .15s,transform .15s;background:#ffffff0d}.foundation-slot .slot-placeholder{font-size:15px;opacity:.4;letter-spacing:.5px;text-align:center;line-height:1.4}.foundation-slot.eliminating{box-shadow:0 0 0 3px #fde047cc,0 0 24px #fde04780;border-color:#fde047}#tableau-area{display:flex;gap:min(8px,2vw);align-items:flex-start;flex:1;overflow-x:auto;overflow-y:visible;scrollbar-width:none;-ms-overflow-style:none;width:100%;padding-bottom:8px}#tableau-area::-webkit-scrollbar{display:none}.tableau-stack{width:var(--card-w);position:relative;min-height:var(--card-h);perspective:600px}.tableau-stack .card:not(.face-down){touch-action:none}#stock-area{display:flex;flex-direction:row-reverse;gap:12px;align-items:flex-end;justify-content:flex-end;align-self:flex-end;min-height:var(--stock-area-min-h)}#stock-pile{width:var(--card-w);min-height:var(--card-h);height:auto;border:2px solid var(--slot-border);border-radius:var(--card-radius);background:#ffffff0f;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:background .15s,transform .1s}#stock-pile:hover{background:#ffffff21;transform:scale(1.03)}#stock-pile:active{transform:scale(.97)}#stock-pile:empty:after{content:"↺";font-size:28px;opacity:.4}.stock-back-layer{position:absolute!important;top:calc(var(--stock-layer-index, 0) * var(--stock-layer-step));left:0;z-index:calc(20 - var(--stock-layer-index, 0));box-shadow:0 1px 3px #00000040,0 5px 12px #0003}.stock-count{position:absolute;bottom:7px;right:9px;z-index:30;font-size:14px;font-weight:700;opacity:.7;background:#0003;border-radius:5px;padding:1px 5px}#discard-pile{width:calc(var(--card-w) + var(--card-fan) * 2);height:var(--card-h);position:relative;display:flex;align-items:center;justify-content:center}.card{width:var(--card-w);height:var(--card-h);border-radius:var(--card-radius);border:1.5px solid #ddd;background:#fff;box-shadow:0 1px 3px #0000002e,0 4px 10px #0000001f;display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;cursor:grab;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:600;color:#333;transition:box-shadow .12s;transform-style:preserve-3d;backface-visibility:hidden}.card:active{cursor:grabbing}.card[data-category=A]{background:var(--cat-A-bg);border-color:var(--cat-A-border)}.card[data-category=B]{background:var(--cat-B-bg);border-color:var(--cat-B-border)}.card[data-category=C]{background:var(--cat-C-bg);border-color:var(--cat-C-border)}.card[data-category=D]{background:var(--cat-D-bg);border-color:var(--cat-D-border)}.card[data-category=E]{background:var(--cat-E-bg);border-color:var(--cat-E-border)}.card[data-category=F]{background:var(--cat-F-bg);border-color:var(--cat-F-border)}.card[data-category=G]{background:var(--cat-G-bg);border-color:var(--cat-G-border)}.card[data-category=H]{background:var(--cat-H-bg);border-color:var(--cat-H-border)}.card[data-category=I]{background:var(--cat-I-bg);border-color:var(--cat-I-border)}.card[data-category=J]{background:var(--cat-J-bg);border-color:var(--cat-J-border)}.card[data-category=K]{background:var(--cat-K-bg);border-color:var(--cat-K-border)}.card[data-category=L]{background:var(--cat-L-bg);border-color:var(--cat-L-border)}.card.flip-back{background-image:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(255,255,255,.04) 5px,rgba(255,255,255,.04) 6px),linear-gradient(145deg,#1d7a48,#0f4a2c)!important;background-color:#1d7a48!important;border-color:#ffffff2e!important}.card.flip-back .card-label,.card.flip-back .card-peek{visibility:hidden!important}.card.face-down{background:linear-gradient(145deg,#1d7a48,#145e38,#0f4a2c);border-color:#ffffff2e;cursor:default;background-image:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(255,255,255,.04) 5px,rgba(255,255,255,.04) 6px),linear-gradient(145deg,#1d7a48,#0f4a2c);box-shadow:0 1px 3px #00000040,0 4px 10px #0000002e,inset 0 1px #ffffff1a}.card.base-card{border-width:2px;box-shadow:0 2px 6px #0003,0 6px 18px #00000024,0 0 0 1px #ffd70080}.card.base-card[data-category=A]{border-color:var(--cat-A-color);background:linear-gradient(145deg,#fff5f5,#ffe4e4)}.card.base-card[data-category=B]{border-color:var(--cat-B-color);background:linear-gradient(145deg,#ebf8ff,#dbeafe)}.card.base-card[data-category=C]{border-color:var(--cat-C-color);background:linear-gradient(145deg,#f0fdf4,#dcfce7)}.card.base-card[data-category=D]{border-color:var(--cat-D-color);background:linear-gradient(145deg,#f5f3ff,#ede9fe)}.card.base-card[data-category=E]{border-color:var(--cat-E-color);background:linear-gradient(145deg,#fffbeb,#fef3c7)}.card.base-card[data-category=F]{border-color:var(--cat-F-color);background:linear-gradient(145deg,#ecfeff,#cffafe)}.card.base-card[data-category=G]{border-color:var(--cat-G-color);background:linear-gradient(145deg,#fff7ed,#fed7aa)}.card.base-card[data-category=H]{border-color:var(--cat-H-color);background:linear-gradient(145deg,#f8fafc,#e2e8f0)}.card.base-card[data-category=I]{border-color:var(--cat-I-color);background:linear-gradient(145deg,#fdf2f8,#fce7f3)}.card.base-card[data-category=J]{border-color:var(--cat-J-color);background:linear-gradient(145deg,#f0fdfa,#ccfbf1)}.card.base-card[data-category=K]{border-color:var(--cat-K-color);background:linear-gradient(145deg,#f7fee7,#ecfccb)}.card.base-card[data-category=L]{border-color:var(--cat-L-color);background:linear-gradient(145deg,#eef2ff,#e0e7ff)}.card.dragging{opacity:.92;box-shadow:0 8px 24px #00000061,0 16px 48px #00000038;cursor:grabbing;z-index:1000;transition:none}.card .card-peek{display:none;position:absolute;top:0;left:0;right:0;height:var(--card-overlap);align-items:center;justify-content:center;font-size:calc(var(--card-w) * .16);font-weight:800;letter-spacing:-.3px;pointer-events:none}.card.is-covered .card-peek{display:flex}.card.is-covered .card-label{visibility:hidden}.card .card-fan-label{display:none;position:absolute;left:calc(var(--card-w) - var(--card-fan) / 2);top:50%;transform:translate(-50%,-50%) rotate(90deg);font-size:calc(var(--card-w) * .16);font-weight:800;white-space:nowrap;pointer-events:none;letter-spacing:-.3px}.card.fan-covered .card-fan-label{display:block}.card.fan-covered .card-label{visibility:hidden}.card .card-label{font-size:calc(var(--card-w) * .28);font-weight:800;line-height:1;letter-spacing:-.5px}.card[data-category=A] .card-label,.card[data-category=A] .card-peek,.card[data-category=A] .card-fan-label{color:var(--cat-A-color)}.card[data-category=B] .card-label,.card[data-category=B] .card-peek,.card[data-category=B] .card-fan-label{color:var(--cat-B-color)}.card[data-category=C] .card-label,.card[data-category=C] .card-peek,.card[data-category=C] .card-fan-label{color:var(--cat-C-color)}.card[data-category=D] .card-label,.card[data-category=D] .card-peek,.card[data-category=D] .card-fan-label{color:var(--cat-D-color)}.card[data-category=E] .card-label,.card[data-category=E] .card-peek,.card[data-category=E] .card-fan-label{color:var(--cat-E-color)}.card[data-category=F] .card-label,.card[data-category=F] .card-peek,.card[data-category=F] .card-fan-label{color:var(--cat-F-color)}.card[data-category=G] .card-label,.card[data-category=G] .card-peek,.card[data-category=G] .card-fan-label{color:var(--cat-G-color)}.card[data-category=H] .card-label,.card[data-category=H] .card-peek,.card[data-category=H] .card-fan-label{color:var(--cat-H-color)}.card[data-category=I] .card-label,.card[data-category=I] .card-peek,.card[data-category=I] .card-fan-label{color:var(--cat-I-color)}.card[data-category=J] .card-label,.card[data-category=J] .card-peek,.card[data-category=J] .card-fan-label{color:var(--cat-J-color)}.card[data-category=K] .card-label,.card[data-category=K] .card-peek,.card[data-category=K] .card-fan-label{color:var(--cat-K-color)}.card[data-category=L] .card-label,.card[data-category=L] .card-peek,.card[data-category=L] .card-fan-label{color:var(--cat-L-color)}.foundation-slot .card{cursor:default}.foundation-slot .foundation-cat-badge{position:absolute;top:0;left:50%;transform:translate(-50%,-85%);color:#fff;font-size:13px;font-weight:800;min-width:54px;padding:5px 11px;border-radius:7px 7px 0 0;text-align:center;white-space:nowrap;pointer-events:none;box-shadow:0 -2px 6px #00000026}.foundation-slot .card .foundation-progress{position:absolute;top:7px;right:7px;font-size:13px;font-weight:700;color:#555;background:#00000017;border-radius:5px;padding:2px 6px;letter-spacing:-.2px;pointer-events:none}#overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-sizing:border-box;padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}#overlay.hidden{display:none}#overlay-content{background:#fff;color:#222;border-radius:20px;padding:clamp(20px,5.5vw,40px) clamp(18px,5vw,48px);text-align:center;display:flex;flex-direction:column;gap:clamp(14px,3.5vw,20px);box-shadow:0 24px 80px #0006;box-sizing:border-box;width:min(100%,360px);max-width:100%;min-width:0;max-height:calc(100vh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow-x:hidden;overflow-y:auto;flex-shrink:0;transform-origin:center center}#overlay-title{font-size:clamp(1.05rem,4.2vw,1.625rem);font-weight:800;line-height:1.35;margin:0;word-break:break-word;overflow-wrap:anywhere}#overlay-btn{background:#16a34a;color:#fff;border:none;border-radius:24px;padding:12px clamp(20px,6vw,36px);font-size:clamp(.9rem,3.8vw,1rem);font-weight:700;cursor:pointer;transition:background .15s,transform .1s;box-shadow:0 4px 14px #16a34a66;flex-shrink:0}#overlay-btn:hover{background:#15803d}#overlay-btn:active{transform:scale(.97)}@media(min-width:600px){html,body{height:auto;min-height:100%;overflow-y:auto}.overlay-corner-back{left:calc(50vw - 244px)}}
