:root{color-scheme:dark;--bg:#10141d;--panel:#1c2432;--line:#354153;--muted:#9eafc3;--accent:#efc690;--text:#f8f1e8}*{box-sizing:border-box}body{margin:0;min-height:100svh;background:radial-gradient(ellipse at 50% 0,var(--panel),var(--bg) 72%);font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text)}body.solitaire{--bg:#0d211e;--panel:#1c3b31;--line:#365548;--accent:#c0e5cd;--muted:#a0bbb0}body.memory{--bg:#1b1425;--panel:#352441;--line:#594365;--accent:#d8b3ef;--muted:#b6a5c8}button,select{font:inherit;min-height:44px;padding:9px 15px;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:9px}button{cursor:pointer}button:hover{border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button,a,select{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a{color:var(--muted);text-decoration:none}a:hover{color:white}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.shell{max-width:1060px;margin:auto;padding:23px 26px}.top{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding-bottom:20px}.brand{display:flex;gap:13px;align-items:center}.mark{width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:var(--panel);display:grid;place-items:center;color:var(--accent);font-size:24px}h1{font-size:24px;letter-spacing:2px;margin:0}.eyebrow{font-size:9px;color:var(--muted);letter-spacing:1.8px;text-transform:uppercase;margin:4px 0 0}.back{min-height:44px;display:flex;align-items:center;font-size:12px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:24px 0 20px}.stats{display:flex;gap:28px}.stat span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted)}.stat strong{font-size:23px;font-variant-numeric:tabular-nums;color:var(--accent)}.controls{display:flex;gap:8px;flex-wrap:wrap}.layout{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:28px;align-items:start}.board-wrap{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 20px 65px #0003}.help{color:var(--muted);font-size:12px;line-height:1.9}.help h2{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--accent);margin-top:0}.help strong{color:var(--text)}.line{height:1px;background:var(--line);margin:20px 0}.hint{font-size:12px;color:var(--muted);text-align:center;margin:13px 0}.overlay{position:absolute;inset:0;z-index:5;background:color-mix(in srgb,var(--bg) 94%,transparent);border-radius:15px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px}.overlay[hidden]{display:none}.overlay h2{font-size:36px;line-height:1.1;letter-spacing:-1px;margin:15px 0}.overlay p{font-size:13px;color:var(--muted);max-width:285px;margin:0 0 20px}.tag{font-size:10px;letter-spacing:2px;color:var(--accent)}.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:750}.overlay .controls{justify-content:center}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}footer{border-top:1px solid var(--line);margin-top:30px;padding-top:17px;display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:10px}
.tiles-board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;touch-action:none;user-select:none}.tile{aspect-ratio:1;background:#ffffff08;border-radius:10px;display:grid;place-items:center;font-weight:800;font-size:clamp(22px,5vw,45px);letter-spacing:-1px;color:#fff4e5;transition:background .15s}.tile[data-value="2"]{background:#6f5748}.tile[data-value="4"]{background:#957257}.tile[data-value="8"]{background:#ba8058}.tile[data-value="16"]{background:#cc785f}.tile[data-value="32"]{background:#ce6676}.tile[data-value="64"]{background:#a26993}.tile[data-value="128"]{background:#8975b0}.tile[data-value="256"]{background:#678dab}.tile[data-value="512"]{background:#559f99}.tile[data-value="1024"]{background:#7ea669;font-size:clamp(20px,4vw,36px)}.tile[data-value="2048"]{background:#d4b568;color:#342817;font-size:clamp(20px,4vw,36px)}.tile.large{font-size:clamp(17px,3vw,31px);background:#cfba8e;color:#342817}.dpad{display:flex;justify-content:center;gap:8px;margin-top:13px}.dpad button{font-size:20px;min-width:50px;padding:6px}
.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.memory-board.six{grid-template-columns:repeat(6,1fr)}.memory-card{aspect-ratio:1;min-height:0;position:relative;padding:0;font-size:clamp(24px,5vw,42px);border-radius:12px;background:linear-gradient(140deg,#674c7a,#3e2e50);border:1px solid #8b6a9d;transition:transform .18s,background .18s}.memory-card.open{background:#ead7f0;color:#674778;transform:rotate(2deg)}.memory-card.matched{background:#375b52;border-color:#679c88;color:#e6fff2}.memory-card.matched:disabled{opacity:1}.memory-card .back-icon{color:#cdb4df}.level-picker{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.memory .board-wrap{max-width:720px}
.solitaire .layout{grid-template-columns:minmax(0,1fr)}.solitaire .board-wrap{padding:18px;min-height:540px;overflow-x:auto}.card-top,.tableau{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.card-top{margin-bottom:24px}.tableau-column{position:relative;min-height:140px}.slot,.playing-card{aspect-ratio:5/7;border-radius:9px;min-height:0;width:100%;padding:0}.slot{border:1px dashed #709383;background:#18372b77;color:#94bca6;font-size:24px}.slot.stock{background:repeating-linear-gradient(45deg,#456657,#456657 5px,#365647 5px,#365647 10px);border:2px solid #80a28e;color:#d6ecdc}.playing-card{position:relative;background:#f5eedf;border:1px solid #fff6de;color:#23383a;box-shadow:0 3px 6px #0003;font-family:Georgia,serif}.playing-card.red{color:#bd566c}.playing-card.down{background:repeating-linear-gradient(45deg,#456657,#456657 5px,#365647 5px,#365647 10px);border:2px solid #80a28e}.playing-card.selected{outline:3px solid #f6d879;outline-offset:1px;transform:translateY(-3px)}.corner{position:absolute;left:7px;top:5px;font-size:clamp(13px,2vw,21px);font-weight:bold;line-height:1.05;text-align:center}.suit{display:block;font-size:.85em}.center-suit{font-size:clamp(22px,4vw,39px)}.tableau-column>.playing-card{position:absolute;left:0;top:var(--offset)}.solitaire .hint{min-height:36px}.solitaire-help{font-size:12px;color:var(--muted);text-align:center;max-width:700px;margin:18px auto}.card-top .empty{grid-column:3}.tableau-column>.slot{position:absolute;top:0;left:0}.mobile-nav{display:none}
@media(max-width:760px){.layout{grid-template-columns:1fr}.help{display:none}.shell{padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.top{padding-bottom:12px}h1{font-size:19px}.eyebrow{font-size:8px}.back{font-size:10px}.mark{width:33px;height:33px}.brand{gap:9px}.toolbar{margin:16px 0;gap:10px;flex-wrap:wrap}.stats{gap:22px}.stat strong{font-size:23px}.controls button{font-size:11px;padding:8px 11px}.board-wrap{padding:10px;max-width:560px;width:100%;margin:auto}.tiles-board{gap:8px}.tile{border-radius:8px;font-size:clamp(23px,8vw,38px)}.tile[data-value="1024"],.tile[data-value="2048"]{font-size:clamp(20px,7vw,32px)}.memory-board{gap:8px}.memory-card{border-radius:9px;font-size:clamp(22px,7vw,35px)}.memory-board.six .memory-card{font-size:clamp(20px,5vw,30px)}.solitaire .shell{padding-left:9px;padding-right:9px}.solitaire .board-wrap{padding:10px;max-width:none;min-height:440px}.card-top,.tableau{gap:5px}.slot,.playing-card{border-radius:5px}.corner{left:3px;top:3px;font-size:13px}.center-suit{font-size:24px}.solitaire .toolbar{gap:8px}.solitaire .stats{gap:14px}.solitaire .controls{gap:5px}.solitaire .controls button{padding:7px 8px}.overlay h2{font-size:30px}footer{margin-top:22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.memory-card.open{transform:none}}

/* Pointer dragging stays local to cards so the rest of the page can scroll. */
.solitaire .playing-card:not(.down){touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.solitaire .playing-card.drag-source{opacity:.25}
.solitaire .drop-hover{outline:3px solid #f6d879;outline-offset:2px}
.face-art{position:absolute;inset:8% 8% 8% 27%;width:65%;height:84%;object-fit:contain;pointer-events:none}
.corner{z-index:1}
.card-drag{position:fixed;z-index:10000;pointer-events:none;filter:drop-shadow(0 12px 12px #0005)}
.card-drag .playing-card{pointer-events:none;opacity:1;transform:none}
@media(prefers-reduced-motion:no-preference){.solitaire .drop-hover{transition:outline-color .1s}}
