.underline{text-decoration-line:underline}:root{--bg-color:#0f172a;--text-color:#f8fafc;--border-color:#334155;--empty-bg:#1e293b;--key-bg:#475569;--key-text:#f8fafc;--correct-bg:#10b981;--present-bg:#f59e0b;--absent-bg:#334155;--modal-bg:#1e293b;--modal-overlay:#0009}body.light{--bg-color:#fff;--text-color:#0f172a;--border-color:#d1d5db;--empty-bg:#f8fafc;--key-bg:#e2e8f0;--key-text:#0f172a;--absent-bg:#94a3b8;--modal-bg:#fff;--modal-overlay:#fff9}*{box-sizing:border-box;margin:0;padding:0}html,body{touch-action:manipulation;height:100%;overflow:hidden}body{background:var(--bg-color);color:var(--text-color);justify-content:center;align-items:center;font-family:Inter,sans-serif;transition:background .3s,color .3s;display:flex}#game-container{flex-direction:column;width:100%;max-width:500px;height:100%;padding:10px;display:flex}header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:10px;display:flex}.menu-left,.menu-right{gap:8px;width:60px;display:flex}.menu-right{justify-content:flex-end}.icon-btn{color:var(--text-color);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.icon-btn svg{fill:currentColor;width:24px;height:24px}.title-container{flex-direction:column;align-items:center;display:flex}.title-container h1{letter-spacing:2px;-webkit-text-fill-color:transparent;text-align:center;background:linear-gradient(90deg,#38bdf8,#818cf8);-webkit-background-clip:text;font-size:2rem;font-weight:700;line-height:1.1}.subtitle{color:#94a3b8;letter-spacing:1px;text-transform:uppercase;text-align:center;margin-top:-5px;margin-bottom:5px;font-size:.65rem;font-weight:600}#message-container{z-index:50;pointer-events:none;justify-content:center;align-items:center;height:50px;display:flex;position:relative}.message{background-color:var(--text-color);color:var(--bg-color);opacity:0;pointer-events:auto;border-radius:6px;padding:10px 15px;font-weight:600;transition:all .3s;position:absolute;transform:translateY(-10px);box-shadow:0 4px 6px #0000001a}.message.show{opacity:1;transform:translateY(0)}#board-container{flex-grow:1;justify-content:center;align-items:center;width:100%;min-height:0;margin-bottom:10px;display:flex}#board{grid-gap:5px;aspect-ratio:5/6;grid-template-rows:repeat(6,1fr);width:100%;max-width:350px;max-height:100%;margin:0 auto;display:grid}.row{grid-gap:5px;grid-template-columns:repeat(5,1fr);display:grid}.tile{border:2px solid var(--border-color);background-color:var(--empty-bg);text-transform:uppercase;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:100%;min-width:0;height:100%;min-height:0;font-size:2rem;font-weight:700;transition:border-color .1s,background-color .3s;display:flex}.tile[data-state=tbd]{background-color:var(--empty-bg);color:var(--text-color);border-color:#64748b}.tile.pop{border-color:#64748b;animation:.1s ease-in-out pop}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.tile.revealed{animation:.6s ease-in-out both flip}@keyframes flip{0%{background-color:var(--empty-bg);color:var(--text-color);border-color:#64748b;transform:rotateX(0)}49.99%{background-color:var(--empty-bg);color:var(--text-color);border-color:#64748b;transform:rotateX(90deg)}50%{transform:rotateX(90deg)}to{transform:rotateX(0)}}.tile.shake{animation:.4s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.tile.correct{background-color:var(--correct-bg);border-color:var(--correct-bg);color:#fff}.tile.present{background-color:var(--present-bg);border-color:var(--present-bg);color:#fff}.tile.absent{background-color:var(--absent-bg);border-color:var(--absent-bg);color:#fff}#keyboard-container{flex-direction:column;flex-shrink:0;gap:8px;width:100%;padding:0 5px 10px;display:flex}.keyboard-row{justify-content:center;gap:6px;display:flex}.key{background-color:var(--key-bg);color:var(--key-text);cursor:pointer;text-transform:uppercase;-webkit-user-select:none;user-select:none;border:none;border-radius:4px;flex:1;justify-content:center;align-items:center;min-width:min(40px,8vw);height:min(50px,10dvh);font-size:min(1.1rem,3dvh);font-weight:600;transition:background-color .2s,transform .1s;display:flex}.key:active{transform:scale(.95)}.key.wide{flex:1.5}.key.enter-key{font-size:.65rem}.key.del-key{font-size:1.2rem}.key.correct{background-color:var(--correct-bg);color:#fff}.key.present{background-color:var(--present-bg);color:#fff}.key.absent{background-color:var(--absent-bg);color:#fff}#modal-overlay{background-color:var(--modal-overlay);z-index:100;opacity:1;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:fixed;inset:0}#modal-overlay.hidden{opacity:0;pointer-events:none}.modal{background-color:var(--modal-bg);color:var(--text-color);border-radius:8px;width:90%;max-width:400px;max-height:90vh;padding:20px;transition:transform .2s;overflow-y:auto;transform:translateY(0);box-shadow:0 10px 25px #00000080}.modal.hidden{display:none}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h2{margin:0;font-size:1.2rem;font-weight:700}.close-btn{color:var(--text-color);cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1}.modal-content p{margin-bottom:10px;font-size:.95rem;line-height:1.4}.examples{border-top:1px solid var(--border-color);margin-top:15px;padding-top:15px}.example{margin-bottom:15px}.example .row{justify-content:flex-start;margin-bottom:8px}.stats-container{justify-content:space-between;margin-bottom:20px;display:flex}.stat-box{text-align:center;flex:1}.stat-num{font-size:2rem;font-weight:700}.stat-label{color:var(--text-color);opacity:.8;font-size:.75rem}h3{text-transform:uppercase;text-align:center;margin-bottom:10px;font-size:1rem}.graph-container{width:100%;margin-bottom:20px}.graph-row{align-items:center;margin-bottom:5px;display:flex}.graph-num{width:15px;font-size:.9rem;font-weight:600}.graph-bar{background-color:var(--absent-bg);color:#fff;text-align:right;justify-content:flex-end;min-width:20px;padding:2px 8px;font-size:.9rem;font-weight:600;display:flex}.graph-bar.highlight{background-color:var(--correct-bg)}.action-buttons{gap:10px;margin-top:20px;display:flex}.action-buttons.hidden{display:none}.action-btn{background-color:var(--correct-bg);color:#fff;cursor:pointer;border:none;border-radius:4px;flex:1;justify-content:center;align-items:center;padding:12px;font-size:1rem;font-weight:700;display:flex}.action-btn.secondary{background-color:var(--key-bg);color:var(--key-text)}.setting-row{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:15px 0;display:flex}.setting-row:last-child{border-bottom:none}.setting-title{font-size:1.1rem;font-weight:600}.setting-desc{color:#94a3b8;max-width:250px;margin-top:4px;font-size:.8rem}.switch{width:44px;height:24px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:var(--absent-bg);transition:all .4s;position:absolute;inset:0}.slider:before{content:"";background-color:#fff;width:18px;height:18px;transition:all .4s;position:absolute;bottom:3px;left:3px}input:checked+.slider{background-color:var(--correct-bg)}input:checked+.slider:before{transform:translate(20px)}.slider.round{border-radius:24px}.slider.round:before{border-radius:50%}@media (max-width:400px){.tile{font-size:1.5rem}.key.enter-key{font-size:min(.65rem,2.5dvh)}}.calendar-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px;display:grid}.calendar-day{aspect-ratio:1;border:2px solid var(--border-color);background:var(--empty-bg);cursor:pointer;color:var(--text-color);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;transition:all .2s;display:flex;position:relative}.calendar-day:hover{border-color:#64748b;transform:translateY(-2px)}.calendar-day.active{border-color:var(--correct-bg);box-shadow:0 0 10px #10b9814d}.calendar-day.win{background-color:var(--correct-bg);border-color:var(--correct-bg);color:#fff}.calendar-day.loss{color:#fff;background-color:#ef4444;border-color:#ef4444}.calendar-day.today{border-width:3px}.day-num{font-size:1.2rem;font-weight:700}.day-label{margin-top:2px;font-size:.5rem;font-weight:800}.text-btn{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}
