:root{--bg:#fafafa;--panel:#ffffff;--line:#d1d5db;--tile:#ffffff;--text:#111827;--green:#22c55e;--yellow:#f59e0b;--gray:#9ca3af;--grid-gap:6px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--text);font-family:noto sans devanagari,mangal,sans-serif}.app-shell{width:min(1200px,100%);margin:0 auto;padding:12px;height:100dvh;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.game-panel,.keyboard-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px}.game-panel{min-height:calc(100dvh - 24px);container-type:size;display:flex;justify-content:center;align-items:flex-start}.board{--cell-by-height:calc((100% - (14 * var(--grid-gap))) / 15);--cell-by-width:calc((100% - (4 * var(--grid-gap))) / 5);--cell-size:min(var(--cell-by-height), var(--cell-by-width));width:calc((5 * var(--cell-size)) + (4 * var(--grid-gap)));height:calc((15 * var(--cell-size)) + (14 * var(--grid-gap)));display:grid;grid-template-rows:repeat(15,var(--cell-size));gap:var(--grid-gap);justify-items:stretch;align-items:stretch}@supports(height:1cqh){.board{--cell-by-height:calc((100cqh - (14 * var(--grid-gap))) / 15);--cell-by-width:calc((100cqw - (4 * var(--grid-gap))) / 5)}}.row{display:grid;grid-template-columns:repeat(5,var(--cell-size));gap:var(--grid-gap)}.tile{width:var(--cell-size);height:var(--cell-size);aspect-ratio:1/1;border:1px solid var(--line);background:var(--tile);border-radius:8px;display:grid;place-items:center;font-size:clamp(16px,2.7vh,34px);font-weight:700;line-height:1;user-select:none}.tile.filled{border-color:#9ca3af}.tile.correct{background:var(--green);border-color:var(--green);color:#fff}.tile.present{background:var(--yellow);border-color:var(--yellow);color:#fff}.tile.absent{background:var(--gray);border-color:var(--gray);color:#fff}.tile.reveal{animation:revealFade 320ms ease}@keyframes revealFade{from{opacity:.2;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.row.shake{animation:rowShake 360ms ease}@keyframes rowShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}.keyboard-panel{display:grid;gap:10px;align-content:start}.keyboard{border:1px solid var(--line);border-radius:10px;padding:8px;display:grid;gap:6px}.keyboard.letters{display:flex;flex-direction:column}.keyboard.matras{display:flex;flex-direction:column}.kb-row{display:grid;gap:6px}.kb-row.controls{grid-template-columns:repeat(2,minmax(0,1fr))}.key{border:1px solid #cbd5e1;border-radius:7px;background:#f8fafc;color:var(--text);min-height:38px;font-size:1rem;font-family:inherit;font-weight:700;cursor:pointer}.key.control{display:grid;place-items:center;font-size:1rem;line-height:1}.key.control svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.2}.key.correct{background:#86efac;border-color:#22c55e}.key.present{background:#fde68a;border-color:#f59e0b}.key.absent{background:#d1d5db;border-color:#9ca3af}.reveal-btn{margin-top:10px;width:100%;border:1px solid #334155;border-radius:8px;background:#111827;color:#fff;min-height:40px;font-size:.95rem;font-family:inherit;font-weight:700;cursor:pointer}.error-overlay{position:fixed;top:16px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.92);color:#fff;padding:10px 14px;border-radius:8px;font-size:.95rem;opacity:0;pointer-events:none;transition:opacity 500ms ease;z-index:9999}.error-overlay.show{opacity:1}@media(min-width:768px){.app-shell{flex-direction:row;align-items:stretch;gap:16px;overflow:hidden}.game-panel,.keyboard-panel{flex:1;min-height:0}.game-panel{min-height:0}}