*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--felt:#1a6b35;--felt-dark:#145829;--card-w:68px;--card-h:97px;--card-radius:6px;--card-gap:6px;--global-toolbar-h:56px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}html,body{background:var(--felt);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;height:100%;font-family:system-ui,-apple-system,sans-serif;overflow:hidden}#app{height:100%;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right);flex-direction:column;display:flex}#global-toolbar{background:var(--felt-dark);height:var(--global-toolbar-h);flex-shrink:0;align-items:center;gap:6px;padding:4px 8px;display:flex}#global-toolbar .spacer{flex:1}#akuie-logo{flex-shrink:0;align-items:center;margin-right:4px;display:flex}#akuie-logo img{object-fit:contain;border-radius:6px;width:44px;height:44px}#game-title{color:#fff;letter-spacing:.5px;white-space:nowrap;flex-shrink:0;font-size:18px;font-weight:700}#global-toolbar button{color:#fff;cursor:pointer;white-space:nowrap;background:#00000040;border:1px solid #fff3;border-radius:6px;justify-content:center;align-items:center;gap:4px;min-width:44px;min-height:44px;padding:6px 10px;font-size:13px;display:flex}#global-toolbar button:hover{background:#ffffff1a}#global-toolbar button:disabled{opacity:.35;cursor:default}#btn-how-to-play{font-size:16px;font-weight:700}#btn-donate{color:#f472b6;cursor:pointer;background:#00000040;border:1px solid #fff3;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;text-decoration:none;display:flex}#btn-donate svg{width:18px;height:18px}#btn-donate:hover{background:#f472b626}#game-number-display{color:#fffc;cursor:pointer;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;font-size:12px;display:flex}#game-number-display span{white-space:nowrap}#game-number-display .label{opacity:.6;text-transform:uppercase;letter-spacing:.05em;font-size:10px}#game-number-input{color:#fff;text-align:right;background:#0006;border:1px solid #fff6;border-radius:4px;width:90px;padding:4px 8px;font-size:13px}#game-number-input:focus{border-color:#ffffffb3;outline:none}#toolbar-stats{color:#fffc;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;min-width:60px;font-size:12px;display:flex}#toolbar-stats span{white-space:nowrap}#btn-auto-complete{font-weight:600;color:gold!important;background:#ffd70033!important;border-color:#ffd70080!important}#btn-auto-complete:hover{background:#ffd70059!important}#play-area{flex-direction:column;flex:1;gap:8px;padding:8px;display:flex;overflow:hidden}#top-row{align-items:flex-start;gap:var(--card-gap);flex-shrink:0;display:flex}#free-cells{gap:var(--card-gap);display:flex}#top-spacer{flex:1}#foundations{gap:var(--card-gap);display:flex}#tableau{gap:var(--card-gap);flex:1;align-items:flex-start;display:flex;overflow:hidden}.pile{width:var(--card-w);height:var(--card-h);border-radius:var(--card-radius);border:2px dashed #fff3;flex-shrink:0;position:relative}.pile.foundation{font-size:calc(var(--card-w) * .4);color:#fff3;justify-content:center;align-items:center;display:flex}.pile.freecell{background:#0000001a}.pile.tableau-col{height:auto;min-height:var(--card-h);border-style:dashed}@media (width<=600px){:root{--card-gap:4px}#play-area{gap:4px;padding:4px}#global-toolbar{gap:4px;padding:4px 6px}#game-title{font-size:15px}}@media (height<=500px) and (orientation:landscape){:root{--global-toolbar-h:44px}#akuie-logo img{width:34px;height:34px}#game-title{font-size:14px}#play-area{gap:4px;padding:4px}}.card{width:var(--card-w);height:var(--card-h);border-radius:var(--card-radius);cursor:pointer;touch-action:none;will-change:transform;background:#fff;border:1px solid #00000026;flex-direction:column;transition:box-shadow .1s;display:flex;position:absolute;overflow:hidden}.card-corner{flex-direction:column;align-items:flex-start;padding:2px 4px;line-height:1;display:flex}.card-corner .rank{font-size:calc(var(--card-w) * .22);font-weight:700}.card-corner .suit-sm{font-size:calc(var(--card-w) * .18)}.card-corner-br{position:absolute;bottom:2px;right:4px;transform:rotate(180deg)}.card-center{font-size:calc(var(--card-w) * .38);pointer-events:none;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.card[data-color=red] .rank,.card[data-color=red] .suit-sm,.card[data-color=red] .card-center{color:#c00}.card[data-color=black] .rank,.card[data-color=black] .suit-sm,.card[data-color=black] .card-center{color:#000}.card.movable-hover:not(.selected){outline-offset:-2px;background:#fffbe6;outline:2px solid #ffc832e6;box-shadow:0 4px 14px #0000004d}.card.selected{outline-offset:-2px;z-index:50;outline:3px solid #3b82f6;transform:translateY(-4px);box-shadow:0 6px 20px #3b82f680}.pile.valid-target{border-color:#4ade80cc;box-shadow:0 0 0 2px #4ade8080,0 0 12px #4ade804d}.card.valid-target-card{outline-offset:-2px;outline:3px solid #4ade80cc}.card.dragging-source{opacity:.35}.drag-ghost{pointer-events:none;z-index:9999;opacity:.92;position:fixed}.drag-ghost .card{cursor:grabbing;position:relative;transform:scale(1.04);box-shadow:0 8px 24px #00000073}.pile.tableau-col .card{top:calc(var(--card-index,0) * var(--stack-step,28px));transition:top .15s ease-out,box-shadow .1s}.pile.freecell .card,.pile.foundation .card{top:0;left:0}@keyframes card-slide{0%{opacity:.7}to{opacity:1}}.card.moving{animation:.15s ease-out card-slide}@keyframes snap-back{0%{transform:translate(var(--snap-dx), var(--snap-dy)) scale(1.04)}to{transform:translate(0)scale(1)}}.card.snap-back{animation:.22s cubic-bezier(.25,.46,.45,.94) forwards snap-back}#win-overlay{z-index:9000;background:#00000080;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:none;position:fixed;inset:0}#win-overlay.visible{animation:.35s ease-out overlay-in;display:flex}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}#win-dialog{text-align:center;background:#1a6b35;border-radius:16px;flex-direction:column;align-items:center;gap:16px;padding:32px 40px;animation:.35s cubic-bezier(.22,.61,.36,1) dialog-in;display:flex;box-shadow:0 12px 48px #0009}@keyframes dialog-in{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}#win-dialog h2{color:gold;text-shadow:0 2px 8px #00000080;font-size:2rem;font-weight:700}#win-dialog .win-stats{color:#ffffffd9;flex-direction:column;gap:6px;font-size:1rem;display:flex}#win-dialog .win-actions{gap:12px;margin-top:8px;display:flex}#win-dialog button{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:8px;min-width:120px;min-height:44px;padding:10px 20px;font-size:14px;font-weight:600}#win-dialog button:hover{background:#ffffff40}#win-dialog button.primary{color:#000;background:gold;border-color:gold}#win-dialog button.primary:hover{background:#ffdf40}@keyframes banner-in{0%{opacity:0;transform:translate(-50%)translateY(-12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes banner-out{0%{opacity:1}to{opacity:0}}#record-banner{top:calc(var(--global-toolbar-h) + 12px);color:#fff;white-space:nowrap;z-index:9500;pointer-events:none;background:navy;border:2px solid #ffffff4d;border-radius:4px;padding:8px 20px;font-size:15px;font-weight:700;animation:.25s ease-out forwards banner-in;position:fixed;left:50%;transform:translate(-50%)}.flying-card{pointer-events:none;z-index:9999;border-radius:var(--card-radius);width:var(--card-w);height:var(--card-h);background:#fff;border:1px solid #00000026;position:fixed}#htp-panel{z-index:8000;justify-content:center;align-items:center;display:none;position:fixed;inset:0}#htp-panel.open{display:flex}#htp-backdrop{background:#0009;position:absolute;inset:0}#htp-dialog{background:#1a6b35;border-radius:12px;flex-direction:column;width:min(480px,92vw);max-height:80vh;animation:.2s htp-in;display:flex;position:relative;box-shadow:0 8px 40px #00000080}@keyframes htp-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}#htp-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}#htp-header h2{color:#fff;font-size:1.1rem}#htp-header button{color:#fff9;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:18px;line-height:1}#htp-header button:hover{color:#fff}#htp-body{color:#ffffffd9;flex-direction:column;gap:16px;padding:16px 20px 20px;font-size:14px;line-height:1.6;display:flex;overflow-y:auto}#htp-body section h3{color:#fff;text-transform:uppercase;letter-spacing:.06em;opacity:.7;margin-bottom:6px;font-size:.85rem}#htp-body p+p{margin-top:6px}#htp-body strong{color:#fff}#htp-body ul{flex-direction:column;gap:4px;padding-left:18px;display:flex}#unsolvable-banner{top:calc(var(--global-toolbar-h) + 12px);color:#fff;white-space:nowrap;z-index:200;pointer-events:none;background:#b40000e6;border:1px solid #ff646480;border-radius:4px;padding:6px 16px;font-size:13px;animation:.25s ease-out forwards banner-in;position:fixed;left:50%;transform:translate(-50%)}
