:root{--bg:#fffaf0;--paper:#fffaf0;--panel:#fffdf7;--felt:#d7e8dc;--felt-line:#aecbb7;--card:#fffdf7;--card-ink:#3d3832;--red:#d9635d;--mint:#9eddbd;--blue:#8fc9eb;--yellow:#f7d66c;--coral:#f28c78;--purple:#b8a7e8;--ink:#3d3832;--muted:#8a7c6e;--line:#d9cfc1;--shadow:#d6c8b7;--back:#8fc9eb;--accent:#4b9c95;--cw:clamp(41px,10.7vw,72px);--ch:calc(var(--cw)*1.38)}
[data-theme="light"]{--bg:#fffaf0;--paper:#fffaf0;--panel:#fffdf7;--felt:#d7e8dc;--felt-line:#aecbb7;--card:#fffdf7;--card-ink:#3d3832;--red:#d9635d;--mint:#9eddbd;--blue:#8fc9eb;--yellow:#f7d66c;--coral:#f28c78;--purple:#b8a7e8;--ink:#3d3832;--muted:#8a7c6e;--line:#d9cfc1;--shadow:#d6c8b7;--back:#8fc9eb;--accent:#4b9c95}
[data-theme="dark"]{--bg:#17232b;--paper:#1b2b33;--panel:#20323a;--felt:#29474a;--felt-line:#527477;--card:#fff4dc;--card-ink:#20323a;--red:#d85f64;--mint:#86cda9;--blue:#76b8de;--yellow:#f1ce63;--coral:#eb806f;--purple:#a99add;--ink:#fff4dc;--muted:#a8b8b2;--line:#4d6668;--shadow:#0d171d;--back:#527d8c;--accent:#9eddbd}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:12px ui-rounded,"SF Pro Rounded","Arial Rounded MT Bold",system-ui,sans-serif}body{display:flex;justify-content:center}button,a{-webkit-tap-highlight-color:transparent}.page{width:min(790px,100%);padding:14px 14px calc(24px + env(safe-area-inset-bottom))}.topbar{min-height:58px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;border-bottom:2px dashed var(--line);margin-bottom:11px}.topbar>a,.topbar>button{min-height:44px;display:flex;align-items:center;padding:8px 0;border:0;background:none;color:var(--muted);font:900 10px inherit;letter-spacing:.07em;text-decoration:none;cursor:pointer}.topbar>button{justify-content:flex-end}.topbar>a:hover,.topbar>a:focus-visible,.topbar>button:hover,.topbar>button:focus-visible{color:var(--coral);outline:none}.brand{text-align:center;min-width:0}.brand h1{margin:0;font-size:clamp(17px,4vw,24px);font-weight:950;letter-spacing:.07em;line-height:1;white-space:nowrap;transform:rotate(-1deg)}.brand span{display:block;margin-top:5px;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.06em;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;width:min(100%,760px);margin:0 auto 10px}.stats>div{min-width:0;padding:8px 9px;border:2px solid var(--ink);border-radius:12px 10px 14px 11px;background:var(--panel);box-shadow:2px 3px var(--shadow);display:flex;flex-direction:column;gap:3px}.stats span{color:var(--muted);font-size:7px;font-weight:900;letter-spacing:.08em}.stats b{font-size:14px;line-height:1}.stats>div:nth-child(1) b{color:var(--coral)}.stats>div:nth-child(2) b{color:var(--accent)}.stats>div:nth-child(3) b{color:var(--yellow)}.stats>div:nth-child(4) b{color:var(--purple)}.game-shell{position:relative;width:min(100%,760px);min-height:calc(var(--ch) + 210px);padding:13px;border:3px solid var(--ink);border-radius:22px 18px 25px 19px;background:var(--felt);box-shadow:7px 8px var(--shadow);overflow:hidden}.bunny-badge,.tea-badge{position:absolute;z-index:0;pointer-events:none;opacity:.52}.bunny-badge{right:10px;bottom:8px;font-size:30px;transform:rotate(-8deg)}.tea-badge{left:12px;bottom:9px;font-size:25px;transform:rotate(8deg)}.top-row,.tableau{position:relative;z-index:1}.top-row{display:grid;grid-template-columns:var(--cw) var(--cw) 1fr repeat(4,var(--cw));gap:8px;align-items:start}.slot{position:relative;width:var(--cw);height:var(--ch);padding:0;border:2px dashed var(--felt-line);border-radius:11px 8px 13px 9px;background:transparent;color:var(--muted);font:950 22px inherit;cursor:pointer;touch-action:manipulation}.slot.stock.has-cards{border-style:solid;background:repeating-linear-gradient(135deg,var(--back) 0 6px,var(--mint) 6px 10px);color:var(--ink)}.slot.stock.has-cards:after{content:"☕";position:absolute;inset:0;display:grid;place-items:center;color:var(--ink);font-size:20px}.slot.foundation{color:var(--red)}.slot.foundation.red{color:var(--red)}.spacer{min-width:0}.tableau{display:grid;grid-template-columns:repeat(7,var(--cw));gap:8px;margin-top:17px;align-items:start}.pile{position:relative;min-height:var(--ch);width:var(--cw);border:2px dashed var(--felt-line);border-radius:11px 8px 13px 9px}.card{position:absolute;left:-2px;width:var(--cw);height:var(--ch);padding:6px 5px;border:2px solid var(--card-ink);border-radius:11px 8px 13px 9px;background:var(--card);color:var(--card-ink);font:950 clamp(14px,3.7vw,23px) Georgia,serif;line-height:1;cursor:pointer;text-align:left;touch-action:manipulation;box-shadow:2px 2px #20323a33}.card .suit{display:block;margin-top:5px;font-size:clamp(17px,4.7vw,28px);text-align:right}.card.red{color:var(--red)}.card.selected{outline:3px solid var(--yellow);outline-offset:2px;transform:translateY(-3px)}.card.back{background:repeating-linear-gradient(135deg,var(--back) 0 5px,var(--mint) 5px 9px);color:transparent}.card.back:after{content:"✦";position:absolute;inset:0;display:grid;place-items:center;color:var(--paper);font:950 20px inherit}.result-overlay{position:absolute;z-index:3;inset:13px;display:none;flex-direction:column;align-items:center;justify-content:center;gap:13px;border-radius:14px 11px 17px 12px;background:color-mix(in srgb,var(--paper) 93%,transparent);text-align:center}.result-overlay.show{display:flex}.result-spark{color:var(--coral);font-size:37px}.result-overlay b{font-size:clamp(24px,6vw,36px);font-weight:950;letter-spacing:.05em}.result-overlay span{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em}.result-overlay button,.actions button{min-height:48px;padding:12px 18px;border:2px solid var(--ink);border-radius:14px 10px 16px 11px;background:var(--yellow);color:var(--ink);box-shadow:3px 4px var(--ink);cursor:pointer;font:950 10px inherit;letter-spacing:.08em}.result-overlay button:hover,.result-overlay button:focus-visible,.actions button:hover,.actions button:focus-visible{background:var(--mint);outline:none}.actions{display:flex;justify-content:center;gap:8px;margin-top:14px}.actions button{min-width:120px;background:var(--panel)}.actions button+button{color:var(--coral)}.tips{display:flex;justify-content:center;flex-wrap:wrap;gap:7px 15px;margin:12px auto 0;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.07em;line-height:1.4}.tips span:before{content:"✦";color:var(--coral);margin-right:4px}footer{margin-top:11px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em;line-height:1.5;text-align:center}@media(max-width:600px){.page{padding:10px 10px max(19px,env(safe-area-inset-bottom))}.topbar{min-height:54px;gap:4px}.brand h1{font-size:16px}.brand span{font-size:6px}.topbar>a,.topbar>button{font-size:8px}.stats{gap:5px}.stats>div{padding:7px 5px;border-width:1.5px;box-shadow:1px 2px var(--shadow)}.stats span{font-size:6px}.stats b{font-size:11px}.game-shell{padding:8px;border-width:2px;border-radius:18px 15px 21px 16px;box-shadow:5px 6px var(--shadow);min-height:calc(var(--ch) + 188px)}.top-row,.tableau{gap:5px}.tableau{margin-top:12px}.slot{border-width:1.5px}.card{border-width:1.5px;padding:5px 4px}.actions{margin-top:12px}.actions button{min-width:0;flex:1}.tips{font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
