:root{--bg:#121213;--fg:#f8f8f8;--bd:#3a3a3c;--key:#818384;--g:#538d4e;--y:#b59f3b;--x:#3a3a3c}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Roboto,sans-serif;overscroll-behavior:none;user-select:none}
body{display:flex;flex-direction:column;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid var(--bd)}
header button{background:none;border:0;color:var(--fg);font-size:22px;padding:6px 8px;cursor:pointer}
header .pill{font-size:13px;border:1px solid var(--key);border-radius:14px;padding:4px 10px;margin-right:4px}
.title{text-align:center}h1{margin:0;font-size:24px;letter-spacing:1px}.title small{color:#aaa;font-size:12px}
main{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:8px}
#board{display:grid;grid-template-rows:repeat(6,1fr);gap:5px;height:min(100%,420px);aspect-ratio:5/6;max-width:100%}
.row{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.tile{border:2px solid var(--bd);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:clamp(20px,8vw,34px);text-transform:uppercase}
.tile.filled{border-color:#565758;animation:pop .1s}
.tile.correct{background:var(--g);border-color:var(--g)}.tile.present{background:var(--y);border-color:var(--y)}.tile.absent{background:var(--x);border-color:var(--x)}
.tile.flip{animation:flip .5s ease}
@keyframes flip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}100%{transform:rotateX(0)}}
@keyframes pop{50%{transform:scale(1.1)}}
.shake{animation:shake .4s}@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.win .tile{animation:bounce .5s ease}.win .tile:nth-child(2){animation-delay:.1s}.win .tile:nth-child(3){animation-delay:.2s}.win .tile:nth-child(4){animation-delay:.3s}.win .tile:nth-child(5){animation-delay:.4s}
@keyframes bounce{40%{transform:translateY(-20px)}}
#keyboard{padding:0 6px 8px}.krow{display:flex;gap:6px;margin-top:8px;justify-content:center}
.krow:nth-child(2){padding:0 5%}
#keyboard button{flex:1;height:56px;border:0;border-radius:5px;background:var(--key);color:var(--fg);font-weight:700;font-size:16px;text-transform:uppercase;padding:0;cursor:pointer;transition:background .3s}
#keyboard button.wide{flex:1.5;font-size:12px}#keyboard button.wide[data-k=Backspace]{font-size:20px}
#keyboard button.correct{background:var(--g)}#keyboard button.present{background:var(--y)}#keyboard button.absent{background:#2a2a2b;color:#999}
#keyboard button:active{filter:brightness(1.3)}
#toast{position:fixed;top:calc(70px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);background:var(--fg);color:#000;font-weight:700;padding:12px 16px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:9}
#toast.show{opacity:1}
dialog{background:#1e1e1f;color:var(--fg);border:1px solid var(--bd);border-radius:12px;width:min(92vw,400px);padding:20px}
dialog::backdrop{background:rgba(0,0,0,.6)}dialog .close{position:absolute;right:10px;top:8px;background:none;border:0;color:var(--fg);font-size:20px}
h2{margin-top:0;text-align:center}h3{font-size:14px;text-align:center;letter-spacing:1px;text-transform:uppercase}
.mini{display:inline-block;width:26px;height:26px;line-height:26px;text-align:center;font-weight:700;margin:3px 6px 3px 0}
.mini.correct{background:var(--g)}.mini.present{background:var(--y)}.mini.absent{background:var(--x)}
.nums{display:flex;justify-content:space-around;text-align:center;font-size:12px}.nums b{display:block;font-size:30px}
.drow{display:flex;align-items:center;gap:6px;margin:4px 0;font-size:14px}.bar{background:var(--x);text-align:right;padding:2px 6px;font-weight:700}.bar.hl{background:var(--g)}
.actions{display:flex;gap:10px;margin-top:16px}.big{flex:1;border:0;border-radius:24px;padding:14px;font-size:17px;font-weight:700;background:var(--g);color:#fff}.big.alt{background:#555}
@media (max-height:600px){#keyboard button{height:46px}}
