:root{color:#f7f4e9;--compact-card-width:clamp(60px, 19vw, 96px);--felt-dark:#062d20;--felt:#0d4a35;--felt-light:#176144;--ink:#15352a;--cream:#fbf7eb;--accent:#d7a844;--accent-dark:#8a5b10;font-synthesis:none;text-rendering:optimizelegibility;background:#062d20;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at top, #1a684a 0, #0c4b35 32%, var(--felt-dark) 78%);min-width:320px;min-height:100svh;margin:0}button{font:inherit}.app{gap:clamp(8px,1.8vw,14px);width:min(100%,920px);min-height:100svh;margin:0 auto;padding:clamp(10px,2vw,20px) clamp(10px,2.2vw,18px) clamp(14px,2.8vw,24px);display:grid}.app__header{border-bottom:1px solid #f8efd347;justify-content:space-between;align-items:center;gap:12px;padding:clamp(2px,.8vw,7px) clamp(2px,.8vw,7px) clamp(10px,1.6vw,15px);display:flex}.eyebrow{color:#e1c277;letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:.74rem;font-weight:800}h1{color:#fff9e9;letter-spacing:-.03em;margin:0;font-size:clamp(1.7rem,4vw,2.25rem);line-height:1}.summary{color:#d0e5d8;margin:6px 0 0;font-size:.84rem;font-weight:800}.level-picker{color:#d4e5da;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:6px;font-size:.74rem;font-weight:800;display:flex}.level-picker select{width:min(150px,42vw);min-width:0;color:var(--ink);font:inherit;background:#fbf5e5;border:1px solid #c6a55c;border-radius:6px;padding:3px 5px;font-weight:850}.level-picker strong{color:#c6dbcf;font-size:.7rem;font-weight:850}.level-controls{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.control-button{cursor:pointer;border:1px solid #0000;border-radius:7px;min-height:34px;padding:6px 10px;font-size:.74rem;font-weight:900;line-height:1;transition:background-color .14s,border-color .14s,box-shadow .14s,transform .14s}.control-button:hover{transform:translateY(-1px)}.control-button:active{transform:translateY(1px)}.control-button--reset{color:#eef7ef;background:#042a1d6b;border-color:#82b99d}.control-button--reset:hover{background:#23694bb8}.control-button--next{background:var(--accent);color:#25301d;border-color:#f2cf79;box-shadow:0 2px #8a5b10}.control-button--next:hover{background:#ebbd59}.level-details{color:#c8ddd1;flex-wrap:wrap;gap:3px 6px;margin:4px 0 0;font-size:.68rem;font-weight:750;line-height:1.2;display:flex}.level-details__difficulty{color:#f0c968;text-transform:capitalize;font-weight:900}.level-details__description{flex-basis:100%}.moves{width:70px;min-height:64px;color:var(--ink);background:#f7ebc6;border:2px solid #f0cd78;border-radius:8px;flex:none;place-items:center;display:grid;box-shadow:0 3px #16392a}.moves span{font-size:1.35rem;font-weight:900;line-height:1}.moves small{color:#476354;text-transform:uppercase;font-size:.68rem;font-weight:850}.board{--board-card-width:var(--compact-card-width);--draw-card-height:clamp(54px, 8vh, 62px);--waste-stack-max-offset:72px;--waste-stack-reserved-height:calc(var(--draw-card-height) + var(--waste-stack-max-offset) + 6px);grid-template-areas:"playfield""draw";align-items:start;gap:clamp(8px,1.8vw,14px);display:grid}.board--5{--board-card-width:clamp(52px, 17vw, 82px)}.board__playfield{background:linear-gradient(145deg,#267550ad,#063525cc),repeating-linear-gradient(0deg,#ffffff05 0 1px,#0000 1px 4px);border:1px solid #e2f5e74f;border-radius:12px;grid-area:playfield;gap:clamp(16px,2.8vw,24px);min-width:0;padding:clamp(9px,1.8vw,15px);display:grid;box-shadow:inset 0 1px #ffffff1f}.foundations,.tableau{grid-template-columns:repeat(var(--board-column-count,4), minmax(0, 1fr));align-items:start;gap:0;display:grid}.tableau{border-top:1px solid #f0cd787a;padding-top:clamp(8px,1.6vw,12px)}.draw-rail{--waste-card-width:var(--board-card-width);background:linear-gradient(#05281cc7,#0b4630e0);border:1px solid #e2f5e757;border-radius:10px;grid-area:draw;align-content:start;justify-items:center;gap:5px;min-width:0;padding:8px;display:grid;box-shadow:inset 0 1px #ffffff1a}.draw-rail__label{color:#d8e8dc;letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.66rem;font-weight:900}.foundation-slot,.draw-pile,.draw-empty{text-align:center;border:2px solid #15352a;border-radius:8px;align-content:center;justify-items:center;min-height:clamp(48px,9vh,60px);display:grid}.waste-stack{min-height:var(--waste-stack-reserved-height);width:var(--waste-card-width);isolation:isolate;position:relative}.waste-stack .card--draw{width:100%;transform:translate(var(--waste-x-offset), var(--waste-y-offset));position:absolute;inset:0 auto auto 0}.card--waste-under,.card--waste-under.card--category{pointer-events:none;align-content:start;gap:0;padding:1px 3px}.waste-card__peek{color:#234334;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;max-width:100%;font-size:.64rem;font-weight:900;line-height:1;overflow:hidden}button.card--draw>span{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;overflow:visible}.foundation-slot,.draw-pile{cursor:pointer}.foundation-slot span,.draw-pile span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.76rem;font-weight:850;line-height:1.1;overflow:hidden}.foundation-slot strong,.draw-pile strong{margin-top:3px;font-size:1rem;font-weight:950}.foundation-slot--empty{color:#d3e9db;background:#0a3e2d;border-style:dashed;border-color:#a6cfb7}.foundation-slot--open{color:#164130;background:#e6f4e8;border-color:#2b8655;box-shadow:0 3px #1a5d3a}.foundation-slot--category{border-color:var(--accent-dark);box-shadow:0 3px 0 var(--accent-dark), inset 0 0 0 2px #fff9daa3;color:var(--ink);background:#f6dda0}.foundation-slot--category strong{color:#704b05}.foundation-slot{width:var(--board-card-width);justify-self:center;min-height:clamp(52px,9vh,62px)}.foundation-slot span{overflow-wrap:anywhere;text-overflow:clip;white-space:normal;overflow:visible}.draw-area{grid-template-columns:repeat(2, var(--board-card-width));justify-content:center;align-items:start;gap:8px;display:grid}.draw-pile,.draw-empty{width:var(--board-card-width);min-height:var(--draw-card-height);height:var(--draw-card-height);place-self:start center}.draw-pile{background:var(--accent);color:#29311d;border-color:#f0cb71;box-shadow:0 3px #895809}.draw-pile:disabled{color:#e3eee6;cursor:not-allowed;box-shadow:none;background:#527562;border-color:#7da58e}.draw-empty{color:#486255;background:#f7f4e9;border-color:#b8d4c2;font-size:.9rem;font-weight:800}.column{width:var(--board-card-width);justify-self:center;gap:0;min-width:0;display:grid}.column>.card{margin-top:-12px;position:relative}.column>.card:first-child{margin-top:0}.card{width:100%;min-height:clamp(38px,6.5vh,46px);color:var(--ink);letter-spacing:0;text-align:center;border:2px solid #173c2d;border-radius:8px;place-items:center;padding:3px 4px;font-size:clamp(.7rem,2.6vw,.82rem);font-weight:850;line-height:1.02;display:grid}.card>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}.card small{color:#74500a;text-transform:uppercase;font-size:.6rem;font-weight:900}.card--tableau,.card--draw{cursor:pointer;box-shadow:0 3px #15352a}.card--tableau-empty{color:#d3e9db;cursor:pointer;box-shadow:none;background:#0a3e2d;border-style:dashed;border-color:#9dc5ae}.foundation-slot:disabled,.card--tableau:disabled,.card--draw:disabled,.card--tableau-empty:disabled{cursor:not-allowed}.card--word{background:linear-gradient(145deg,#fffdf5,#f3eee0);border-color:#285942;box-shadow:0 3px #15352a,inset 0 0 0 2px #ffffffa3}.card--category{border-color:var(--accent-dark);box-shadow:0 3px 0 var(--accent-dark), inset 0 0 0 2px #fff9daa3;background:#f6dda0;align-content:center;gap:1px}.card__progress{color:#704b05;font-size:.64rem;font-weight:950}.card--under-cap{box-shadow:none;border-style:dashed}.card--draw{min-height:var(--draw-card-height);height:var(--draw-card-height);padding:4px 6px}.card--buried{cursor:not-allowed;opacity:.88;background:repeating-linear-gradient(135deg,#125239 0 8px,#1d6b4c 8px 16px);min-height:clamp(22px,4.5vh,32px);padding:0}.card--selected{background:#dcefe2;border-color:#d49e2b;box-shadow:0 0 0 4px #f2ca6eb3}button:focus-visible{outline-offset:3px;outline:3px solid #ffe08a}.status-line{color:#d7e8dc;border-left:2px solid #97c7a8;margin:5px 0 0;padding-left:7px;font-size:clamp(.7rem,1.2vw,.82rem);font-weight:800;line-height:1.25}.status-line--error{color:#ffd8d1;border-color:#f08c7e}.status-line--success{color:#fff1bd;border-color:#f2cd70}.status-line--info{border-color:#94c4a5}@media (width>=640px){:root{--compact-card-width:96px}.app{gap:clamp(10px,1.6vw,16px);padding:clamp(10px,2vw,18px)}h1{font-size:2rem}.board{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"playfield draw";gap:clamp(12px,2.4vw,20px)}.board--5{--board-card-width:clamp(68px, 10vw, 82px)}.board{--draw-card-height:60px}.draw-rail{align-self:start}.draw-rail .draw-area{grid-template-columns:var(--board-card-width)}.column{gap:0}.card{min-height:46px;font-size:.84rem}.card--buried{min-height:30px}}@media (orientation:landscape) and (height<=620px){:root{--compact-card-width:clamp(52px, 13vw, 80px)}.app{gap:7px;width:min(100%,760px);padding:7px 10px 9px}.app__header{gap:8px}.eyebrow{display:none}h1{font-size:1.35rem}.summary{margin-top:3px;font-size:.76rem}.level-picker{gap:3px 5px;margin-top:4px;font-size:.66rem}.level-picker select{padding:2px 4px}.level-picker strong{font-size:.62rem}.level-controls{gap:4px;margin-top:5px}.control-button{min-height:27px;padding:4px 7px;font-size:.64rem}.level-details{gap:2px 5px;margin-top:3px;font-size:.6rem}.level-details__description{display:none}.moves{border-radius:7px;width:56px;min-height:46px;box-shadow:0 2px #1f2937}.moves span{font-size:1.05rem}.moves small{font-size:.58rem}.board{grid-template-columns:minmax(0,1fr) auto;gap:8px}.board--5{--board-card-width:clamp(48px, 10vw, 72px)}.board{--draw-card-height:48px}.foundation-slot,.draw-pile,.draw-empty{border-radius:7px;min-height:42px}.foundation-slot span,.draw-pile span{font-size:.66rem}.foundation-slot strong,.draw-pile strong{font-size:.86rem}.board__playfield{gap:12px}.draw-rail{gap:4px;padding:5px}.draw-rail .draw-area{gap:5px}.column{gap:0}.column>.card{margin-top:-9px}.card{border-radius:7px;min-height:38px;padding:4px 3px;font-size:.72rem;line-height:1.02}.card small{font-size:.54rem}.waste-card__peek{font-size:.56rem}.card--buried{min-height:20px}.status-line{margin-top:3px;font-size:.66rem}}@media (prefers-reduced-motion:reduce){.control-button{transition:none}}
