@import "https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;600;700;800;900&family=Poppins:wght@400;600;700;800&display=swap";html{-webkit-text-size-adjust:100%}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--orange:#e85d04;--orange-lt:#ff8534;--green:#2d6a4f;--green-lt:#40916c;--gold:#f5a623;--gold-lt:#ffbd4a;--dark:#1a1a2e;--grey:#8a9ba8;--radius:14px;--radius-sm:9px;--radius-xs:6px}.light{--bg:#fffdf8;--bg2:#fff8ee;--bg3:#fdefd8;--surface:#fff3e2;--surface2:#ffe8c8;--border:#e85d0426;--text:#1a1a2e;--text-2:#3a2a1e;--text-muted:#8a7040;--shadow:#e85d041a}.dark{--bg:#0f0d08;--bg2:#1a1508;--bg3:#241c0a;--surface:#2e2210;--surface2:#3a2c14;--border:#f5a6232e;--text:#fff8ee;--text-2:#ddc89a;--text-muted:#8a7040;--shadow:#0006}body{background:var(--bg)}.app{background:var(--bg);min-height:100dvh;color:var(--text);flex-direction:column;align-items:center;font-family:Nunito,sans-serif;transition:background .3s,color .3s;display:flex}.header{z-index:10;background:var(--bg);width:100%;max-width:520px;padding:.9rem 1rem 0;position:sticky;top:0}.header-inner{border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:.85rem;display:flex}.header-logo{object-fit:contain;width:auto;height:40px}@media (width<=380px){.header-logo{height:28px}}.header-actions{gap:4px;display:flex}.icon-btn{background:var(--surface);border:1.5px solid var(--border);cursor:pointer;width:38px;height:38px;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;transition:all .18s;display:flex}.icon-btn:hover{background:var(--surface2);color:var(--text);border-color:var(--orange)}.streak-badge{background:var(--surface);border:1.5px solid var(--border);color:var(--orange);border-radius:999px;align-items:center;gap:5px;padding:.3rem .75rem;font-size:.9rem;font-weight:800;display:flex}.main{flex-direction:column;flex:1;align-items:center;gap:.65rem;width:100%;max-width:520px;padding:.75rem 1rem 1.5rem;display:flex}.category-row{align-self:flex-start;align-items:center;gap:.5rem;display:flex}.cat-badge{background:var(--surface);color:var(--orange);letter-spacing:1.5px;text-transform:uppercase;border:1.5px solid var(--border);border-radius:999px;padding:.28rem .75rem;font-size:.7rem;font-weight:800}.tracker-wrap{flex-direction:column;gap:.4rem;width:100%;display:flex}.tracker{align-items:center;gap:5px;width:100%;display:flex}.pip{border-radius:999px;flex:1;height:7px;transition:all .3s}.pip-free{background:var(--surface2)}.pip-used{background:linear-gradient(90deg, var(--orange), #c04400)}.tracker-label{color:var(--text-muted);white-space:nowrap;margin-left:4px;font-size:.72rem;font-weight:700}.hint-row{flex-wrap:wrap;align-items:center;gap:.4rem;animation:.25s fadeSlide;display:flex}.hint-btn{cursor:pointer;border:none;border-radius:999px;padding:.3rem .8rem;font-family:Nunito,sans-serif;font-size:.75rem;font-weight:800;line-height:1.4;transition:all .2s}.hint-btn-cat{background:linear-gradient(135deg, var(--gold), var(--gold-lt));color:var(--dark)}.hint-btn-letter{background:linear-gradient(135deg, var(--green), var(--green-lt));color:#fff}.hint-btn:hover{transform:translateY(-1px);box-shadow:0 3px 10px #00000026}.hint-badge{border-radius:999px;align-items:center;padding:.28rem .7rem;font-size:.72rem;font-weight:700;line-height:1.4;display:inline-flex}.hint-badge-cat{color:var(--gold);background:#f5a62326;border:1.5px solid #f5a6234d}.hint-badge-letter{color:var(--green-lt);background:#2d6a4f1f;border:1.5px solid #2d6a4f40}.board-wrap{background:var(--bg2);border-radius:var(--radius);border:1.5px solid var(--border);justify-content:center;align-items:center;width:100%;min-height:110px;padding:1.25rem .75rem;display:flex}.board{flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;width:100%;display:flex}.board-word{flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.apos{color:var(--text-muted);padding-bottom:4px;font-weight:900;line-height:1}.tile{flex-direction:column;flex-shrink:0;justify-content:flex-end;align-items:center;display:flex}.tile-ch{text-align:center;padding-bottom:3px;font-family:Poppins,sans-serif;font-weight:800;line-height:1;display:block}.tile-line{border-radius:2px;width:100%;height:2.5px;display:block}.tile-hide .tile-ch{color:#0000}.tile-hide .tile-line{background:var(--surface2)}.tile-show .tile-ch{color:var(--text)}.tile-show .tile-line{background:var(--orange);opacity:.5}.solve-bar{width:100%}.solve-row{gap:6px;display:flex}.solve-row-err .solve-input{border-color:var(--orange)}.solve-input{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);text-transform:uppercase;letter-spacing:1px;outline:none;flex:1;padding:.75rem 1rem;font-family:Nunito,sans-serif;font-size:.9rem;font-weight:700;transition:border-color .2s}.solve-input::placeholder{color:var(--text-muted);text-transform:none;letter-spacing:0;font-weight:600}.solve-input:focus{border-color:var(--orange)}.solve-btn{background:var(--orange);color:#fff;border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:none;padding:.75rem 1.25rem;font-family:Poppins,sans-serif;font-size:.9rem;font-weight:700;transition:all .18s}.solve-btn:hover:not(:disabled){background:var(--orange-lt);transform:translateY(-1px);box-shadow:0 4px 14px #e85d0459}.solve-btn:disabled{opacity:.35;cursor:not-allowed}.solve-err-msg{color:var(--orange);margin-top:.35rem;padding-left:.2rem;font-size:.76rem;font-weight:700}.keyboard{flex-direction:column;gap:5px;width:100%;display:flex}.key-row{justify-content:center;gap:4px;display:flex}.key{border-radius:var(--radius-xs);cursor:pointer;border:1.5px solid var(--border);justify-content:center;align-items:center;width:clamp(28px,8.5vw,40px);height:clamp(42px,10vw,52px);font-family:Nunito,sans-serif;font-size:clamp(.65rem,2vw,.82rem);font-weight:800;transition:all .15s;display:flex}.key-open{background:var(--surface);color:var(--text)}.key-open:hover:not(:disabled){background:var(--surface2);border-color:var(--orange);box-shadow:0 3px 10px var(--shadow);transform:translateY(-2px)}.key-correct{background:var(--green);color:#fff;cursor:default;border-color:#0000;box-shadow:0 2px 8px #2d6a4f66}.key-wrong{background:var(--bg3);color:var(--text-muted);opacity:.4;cursor:default;border-color:#0000;text-decoration:line-through}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#1a1a2e99;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border-top:2px solid var(--border);border-radius:24px 24px 0 0;width:100%;max-width:520px;padding:1.5rem 1.5rem 2.5rem;position:relative}.modal-close{background:var(--surface);border:1.5px solid var(--border);cursor:pointer;width:36px;height:36px;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;transition:all .18s;display:flex;position:absolute;top:1rem;right:1rem}.modal-close:hover{color:var(--text);background:var(--surface2)}.modal-title{margin-bottom:1.25rem;font-family:Poppins,sans-serif;font-size:1.3rem;font-weight:800}.result-icon{text-align:center;margin-bottom:.4rem;font-size:2.8rem}.result-title{text-align:center;margin-bottom:.3rem;font-family:Poppins,sans-serif;font-size:1.6rem;font-weight:800}.result-phrase{text-align:center;color:var(--text-muted);margin-bottom:.2rem;font-size:.9rem}.result-answer{text-align:center;color:var(--text);margin-bottom:.75rem;font-size:1rem;font-weight:800}.result-stats{background:var(--bg2);border-radius:var(--radius);border:1.5px solid var(--border);justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem;display:flex}.stat{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.stat-val{font-family:Poppins,sans-serif;font-size:1.6rem;font-weight:800;line-height:1}.stat-lab{color:var(--text-muted);text-align:center;font-size:.7rem;font-weight:700}.stat-divider{background:var(--border);width:1.5px;height:36px}.result-countdown{flex-direction:column;align-items:center;gap:2px;margin-bottom:1rem;display:flex}.countdown-label{color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;font-size:.72rem;font-weight:700}.countdown{color:var(--orange);font-family:Poppins,sans-serif;font-size:1.5rem;font-weight:800}.share-btn{background:var(--orange);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:.9rem;font-family:Poppins,sans-serif;font-size:.95rem;font-weight:700;transition:all .2s;display:flex}.share-btn:hover{background:var(--orange-lt);transform:translateY(-2px);box-shadow:0 6px 20px #e85d0466}.settings-list{flex-direction:column;gap:0;margin-bottom:1.25rem;display:flex}.setting-row{border-bottom:1.5px solid var(--border);justify-content:space-between;align-items:center;padding:.9rem 0;display:flex}.setting-name{font-size:.95rem;font-weight:700}.setting-desc{color:var(--text-muted);margin-top:1px;font-size:.78rem}.toggle{background:var(--surface2);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:46px;height:26px;transition:background .25s;position:relative}.toggle-on{background:var(--green)}.toggle-thumb{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .25s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0003}.toggle-on .toggle-thumb{transform:translate(20px)}.settings-section{margin-bottom:1rem}.settings-section-title{letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem;font-size:.8rem;font-weight:800}.settings-about{color:var(--text-2);font-size:.87rem;line-height:1.6}.settings-links{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.settings-link{color:var(--orange);font-size:.8rem;font-weight:600;text-decoration:none}.settings-link:hover{text-decoration:underline}.settings-dot{color:var(--text-muted);font-size:.7rem}.settings-version{color:var(--text-muted);font-size:.72rem}.col-green{color:var(--green-lt)}.col-orange{color:var(--orange)}.col-gold{color:var(--gold)}.show-result-btn{background:var(--surface);border:1.5px solid var(--border);color:var(--text-2);border-radius:var(--radius);cursor:pointer;padding:.7rem 1.5rem;font-family:Nunito,sans-serif;font-size:.9rem;font-weight:700;transition:all .2s}.show-result-btn:hover{background:var(--surface2)}.loading{min-height:100dvh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;font-size:.9rem;font-weight:600;display:flex}.spinner{border:3px solid var(--surface2);border-top-color:var(--orange);border-radius:50%;width:36px;height:36px;animation:.75s linear infinite spin}.board.tile-sm .tile{width:clamp(20px,5vw,30px);height:clamp(28px,7vw,40px)}.board.tile-sm .tile-ch{min-width:clamp(20px,5vw,30px);font-size:clamp(.75rem,2.8vw,1rem)}.board.tile-xs .tile{width:clamp(16px,4vw,24px);height:clamp(24px,6vw,34px)}.board.tile-xs .tile-ch{min-width:clamp(16px,4vw,24px);font-size:clamp(.6rem,2.2vw,.82rem)}.board.tile-sm{gap:.35rem .75rem}.board.tile-xs{gap:.25rem .5rem}.error-state{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:3rem 1rem;font-weight:600;display:flex}.error-state span{font-size:2.5rem}.htp-modal{padding:1.5rem 1.5rem 1.75rem}.htp-dots{justify-content:center;gap:6px;margin-bottom:1.5rem;display:flex}.htp-dot{background:var(--surface2);cursor:pointer;border-radius:999px;width:8px;height:8px;transition:all .2s}.htp-dot-active{background:var(--orange);width:24px}.htp-dot-done{background:var(--green)}.htp-content{text-align:center;flex-direction:column;align-items:center;min-height:220px;padding:0 .5rem;display:flex}.htp-emoji{margin-bottom:.6rem;font-size:2.5rem}.htp-title{color:var(--text);margin-bottom:.5rem;font-family:Poppins,sans-serif;font-size:1.25rem;font-weight:800}.htp-desc{color:var(--text-2);max-width:320px;margin-bottom:1rem;font-size:.9rem;line-height:1.6}.htp-example{flex-direction:column;align-items:center;gap:.6rem;margin-top:.25rem;display:flex}.htp-tiles{gap:5px;display:flex}.htp-tile{border-radius:6px;justify-content:center;align-items:center;width:36px;height:44px;font-family:Poppins,sans-serif;font-size:1.1rem;font-weight:800;display:flex}.htp-tile-hide{background:var(--surface);border:2px solid var(--surface2);color:#0000}.htp-tile-show{background:var(--surface);border:2px solid var(--orange);color:var(--text)}.htp-key-example{align-items:center;gap:.5rem;display:flex}.htp-key{border-radius:6px;justify-content:center;align-items:center;width:36px;height:44px;font-family:Nunito,sans-serif;font-size:.85rem;font-weight:800;display:flex}.htp-key-correct{background:var(--green);color:#fff}.htp-key-wrong{background:var(--bg3);color:var(--text-muted);opacity:.5;text-decoration:line-through}.htp-key-label{color:var(--text-muted);font-size:.82rem;font-weight:700}.htp-pips{gap:5px;display:flex}.htp-pip{border-radius:999px;width:28px;height:7px}.htp-pip-used{background:linear-gradient(90deg, var(--orange), #c04400)}.htp-pip-free{background:var(--surface2)}.htp-solve-demo{align-items:center;gap:6px;display:flex}.htp-solve-input{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);letter-spacing:1px;padding:.5rem .75rem;font-size:.78rem;font-weight:700}.htp-solve-btn{background:var(--orange);color:#fff;border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.78rem;font-weight:700}.htp-hints-demo{flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex}.htp-hint-badge{border-radius:999px;padding:.3rem .8rem;font-size:.75rem;font-weight:800}.htp-hint-cat{background:linear-gradient(135deg, var(--gold), var(--gold-lt));color:var(--dark)}.htp-hint-letter{background:linear-gradient(135deg, var(--green), var(--green-lt));color:#fff}.htp-streak-demo{align-items:center;gap:.6rem;display:flex}.htp-streak-badge{background:var(--surface);border:1.5px solid var(--border);color:var(--orange);border-radius:999px;padding:.4rem 1rem;font-size:1.2rem;font-weight:800}.htp-streak-label{color:var(--text-muted);font-size:.9rem;font-weight:700}.htp-nav{border-top:1.5px solid var(--border);justify-content:space-between;align-items:center;margin-top:1.5rem;padding-top:1.25rem;display:flex}.htp-btn-back{background:var(--surface);border:1.5px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;padding:.6rem 1.1rem;font-family:Nunito,sans-serif;font-size:.88rem;font-weight:700;transition:all .18s}.htp-btn-back:hover{background:var(--surface2);color:var(--text)}.htp-btn-next{background:var(--orange);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:.65rem 1.4rem;font-family:Poppins,sans-serif;font-size:.9rem;font-weight:700;transition:all .18s}.htp-btn-next:hover{background:var(--orange-lt);transform:translateY(-1px);box-shadow:0 4px 14px #e85d044d}.drawer-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:90;background:#00000073;animation:.2s fadeIn;position:fixed;inset:0}.drawer{background:var(--bg);border-left:1.5px solid var(--border);z-index:95;flex-direction:column;width:min(320px,85vw);height:100dvh;transition:transform .3s cubic-bezier(.34,1.2,.64,1);display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-8px 0 32px #00000026}.drawer-open{transform:translate(0)}.drawer-header{border-bottom:1.5px solid var(--border);justify-content:space-between;align-items:center;padding:1.1rem 1.1rem .9rem;display:flex}.drawer-logo{object-fit:contain;width:auto;height:30px}.drawer-close{background:var(--surface);border:1.5px solid var(--border);cursor:pointer;width:34px;height:34px;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;transition:all .18s;display:flex}.drawer-close:hover{background:var(--surface2);color:var(--text)}.drawer-streak{background:var(--surface);border-radius:var(--radius);border:1.5px solid var(--border);justify-content:space-between;align-items:center;margin:.75rem .9rem;padding:.9rem 1.1rem;display:flex}.drawer-streak-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.78rem;font-weight:700}.drawer-streak-val{color:var(--orange);font-family:Poppins,sans-serif;font-size:1rem;font-weight:800}.drawer-divider{background:var(--border);height:1.5px;margin:.25rem 0}.drawer-section{padding:.5rem 0}.drawer-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;padding:.4rem 1.1rem .2rem;font-size:.68rem;font-weight:800}.drawer-item{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:.75rem 1.1rem;transition:background .15s;display:flex}.drawer-item:hover{background:var(--surface)}.drawer-item-left{align-items:center;gap:.75rem;display:flex}.drawer-emoji{text-align:center;width:24px;font-size:1.1rem}.drawer-label{color:var(--text);font-family:Nunito,sans-serif;font-size:.92rem;font-weight:700}.drawer-item-right{align-items:center;display:flex}.drawer-toggle{background:var(--surface2);border-radius:999px;flex-shrink:0;width:40px;height:22px;transition:background .25s;position:relative}.drawer-toggle-on{background:var(--green)}.drawer-toggle-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .25s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0003}.drawer-toggle-on .drawer-toggle-thumb{transform:translate(18px)}.drawer-footer{border-top:1.5px solid var(--border);text-align:center;margin-top:auto;padding:1rem 1.1rem 1.5rem}.drawer-version{color:var(--text-muted);font-size:.75rem;font-weight:700}.drawer-domain{color:var(--text-muted);margin-top:2px;font-size:.72rem}.drawer-about{color:var(--text-2);padding:.4rem 1.1rem .75rem;font-size:.84rem;line-height:1.6}@keyframes popIn{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(7px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSlide{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.tile-show .tile-ch{animation:.3s cubic-bezier(.34,1.56,.64,1) popIn}.solve-row-err .solve-input{animation:.4s shake}.modal-overlay{animation:.2s fadeIn}.modal{animation:.35s cubic-bezier(.34,1.3,.64,1) slideUp}.hint-box{animation:.25s fadeSlide}.solve-err-msg{animation:.2s fadeSlide}
