*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--felt:#1a6b35;--felt-dark:#145829;--card-w:58px;--card-h:83px;--card-radius:5px;--card-gap:5px;--global-toolbar-h:56px;--stack-step-up:24px;--stack-step-down:14px;--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}#difficulty-badge{color:#ffffffe6;cursor:pointer;white-space:nowrap;letter-spacing:.04em;background:#ffffff1f;border:1px solid #ffffff40;border-radius:4px;flex-shrink:0;align-items:center;min-height:44px;padding:3px 7px;font-size:11px;font-weight:600;display:flex}#difficulty-badge:hover{background:#fff3}#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}#play-area{flex-direction:column;flex:1;gap:8px;padding:8px;display:flex;overflow:hidden}#top-row{align-items:center;gap:var(--card-gap);flex-shrink:0;display:flex}#top-spacer{flex:1}#stock-area{width:var(--card-w);height:var(--card-h);cursor:pointer;border-radius:var(--card-radius);flex-shrink:0;position:relative}#stock-area .stock-cards{border-radius:var(--card-radius);background:var(--felt-dark);border:2px dashed #ffffff4d;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#stock-area .stock-count{color:#ffffffd9;letter-spacing:.02em;text-align:center;font-size:15px;font-weight:700;line-height:1.2}#stock-area.empty .stock-cards{opacity:.3;cursor:default}#stock-area.blocked .stock-cards{border-color:#ff646480}#foundations-display{flex-shrink:0;align-items:center;gap:8px;display:flex}.foundation-slot{width:var(--card-w);height:var(--card-h);border-radius:var(--card-radius);font-size:calc(var(--card-w) * .38);color:#ffffff26;background:#0000001a;border:2px solid #ffffff26;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s,border-color .2s;display:flex}.foundation-slot.filled{color:#ffffffb3;background:#ffffff1f;border-color:#fff6}#foundations-count{color:#fffc;white-space:nowrap;font-size:13px;font-weight:600}#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.tableau-col{height:auto;min-height:var(--card-h)}@media (width<=600px){:root{--card-gap:3px}#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;border:1px solid #00000026;flex-direction:column;transition:box-shadow .1s;display:flex;position:absolute;overflow:hidden}.card[data-face-up=true]{background:#fff}.card[data-face-up=false]{background:var(--felt-dark);cursor:default;background-image:repeating-linear-gradient(45deg,#ffffff0f 0 1px,#0000 1px 6px);border-color:#ffffff1a}.card[data-face-up=false] .card-corner,.card[data-face-up=false] .card-center{display:none}.card-corner{flex-direction:column;align-items:flex-start;padding:2px 3px;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:3px;transform:rotate(180deg)}.card-center{font-size:calc(var(--card-w) * .36);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.selected{outline-offset:-2px;z-index:50;outline:3px solid #3b82f6;transform:translateY(-4px);box-shadow:0 6px 20px #3b82f680}.card.movable-hover:not(.selected){outline-offset:-2px;background:#fffbe6;outline:2px solid #ffc832e6;box-shadow:0 4px 14px #0000004d}.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{transition:top .15s ease-out,box-shadow .1s}@keyframes card-slide{0%{opacity:.7}to{opacity:1}}.card.moving{animation:.15s ease-out card-slide}@keyframes flip-up{0%{transform:rotateY(90deg)}to{transform:rotateY(0)}}.card.flipping{transform-origin:50%;animation:.2s ease-out flip-up}#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)}}#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%)}#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}
