.seo-landing{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.game-container{max-width:500px;margin:0 auto;padding:10px}.game-wrapper{flex-direction:column;gap:10px}.game-wrapper,.info-bar{display:flex;align-items:center}.info-bar{justify-content:space-between;width:100%;max-width:320px;font-size:.85rem;color:var(--text-dim)}.puzzle-date{font-weight:600;color:var(--text)}.timer{font-variant-numeric:tabular-nums;font-weight:600}.fill-counter{font-variant-numeric:tabular-nums}.hint-pips{display:flex;gap:6px;justify-content:center}.pip{width:8px;height:8px;border-radius:50%;background:var(--gold);transition:all .2s}.pip.used{background:var(--text-dark);opacity:.4}.grid-container{display:flex;flex-direction:column;align-items:center;gap:6px}.col-indicators{display:flex;gap:4px;justify-content:center;width:290px;padding:0 10px}.grid-with-rows{display:flex;gap:6px;align-items:center}.row-indicators{display:flex;flex-direction:column;gap:4px;justify-content:center;height:290px}.line-dot{width:10px;height:10px;border-radius:50%;background:var(--cell-border);transition:all .3s ease;flex-shrink:0}.line-dot.complete{background:var(--correct);box-shadow:0 0 8px var(--correct);transform:scale(1.3)}.line-dot.wrong{background:var(--wrong);box-shadow:0 0 6px var(--wrong);transform:scale(1.1)}.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;width:290px;height:290px}.cell{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;border-radius:6px;background:var(--cell-bg);border:2px solid var(--cell-border);color:var(--text);cursor:pointer;transition:all .1s;-moz-user-select:none;user-select:none;-webkit-user-select:none;text-transform:uppercase}.cell.blank{visibility:hidden}.cell.revealed{background:var(--cell-revealed);color:var(--text-dim);cursor:default}.cell.hinted{background:var(--hint-bg);border-color:var(--hint-border);color:var(--hint-text);cursor:default}.cell.selected{border-color:var(--accent);background:var(--cell-active);box-shadow:0 0 0 2px var(--accent)}.cell.selected.dir-vertical{border-color:#7c60d0;box-shadow:0 0 0 2px #7c60d0}.cell.in-line{background:var(--cell-active);border-color:rgba(230,57,86,.3)}.cell.correct{background:var(--correct);border-color:var(--correct);color:#fff}.cell.wrong{animation:shake .3s ease;border-color:var(--wrong)}.cell.hint-flash{animation:hintPulse .5s ease}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes hintPulse{0%{transform:scale(1);background:var(--hint-flash);border-color:var(--hint-flash);color:#fff}50%{transform:scale(1.15);background:var(--hint-flash);border-color:var(--hint-flash);color:#fff}to{transform:scale(1);background:var(--hint-bg);border-color:var(--hint-border);color:var(--hint-text)}}.progress-track{width:290px;height:4px;background:var(--cell-border);border-radius:2px;overflow:hidden}.progress-bar{height:100%;background:var(--accent);border-radius:2px;transition:width .3s;width:0}.toolbar{display:flex;gap:10px;justify-content:center}.toolbar-btn{font-family:var(--font);font-size:.85rem;padding:8px 18px;border:1px solid var(--cell-border);background:var(--surface);color:var(--text);border-radius:6px;cursor:pointer;transition:all .15s}.toolbar-btn:hover{background:var(--cell-active)}.hint-btn{background:#f5c542;color:#1a1a2e;font-weight:700;border-color:#f5c542;padding:8px 22px}.hint-btn:hover{opacity:.85;background:#f5c542}.keyboard{width:100%;max-width:500px;display:flex;flex-direction:column;gap:5px;padding:0 4px}.kb-row{gap:4px}.kb-row,.key{display:flex;justify-content:center}.key{font-family:var(--font);font-size:1rem;font-weight:600;min-width:32px;height:46px;border:none;border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer;align-items:center;transition:all .1s;padding:0;-webkit-tap-highlight-color:transparent}.key:active{transform:scale(.95);background:var(--cell-active)}.key.wide{min-width:56px;font-size:.85rem}.key.hint-key{background:var(--gold);color:#1a1a2e;font-weight:700}.key.hint-key.depleted{background:var(--text-dark);color:var(--text-dim);cursor:not-allowed}body.light .key{background:#dddde8;color:#223}body.light .key:active{background:#c0c0d0}body.light .key.hint-key{background:var(--gold);color:#1a1a2e}body.light .cell.in-line{background:#c8c8e0;border-color:rgba(208,48,80,.25)}.win-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}.win-overlay.show{opacity:1;pointer-events:auto}.win-card{background:var(--surface);border-radius:16px;padding:32px;max-width:360px;width:90%;text-align:center}.win-card h2{font-size:1.8rem;margin:0 0 16px;color:var(--correct)}.win-stat{font-size:1.1rem;margin:8px 0;color:var(--text)}.win-stat span{font-weight:700;color:var(--accent)}.share-text{font-family:monospace;font-size:.8rem;background:var(--bg);padding:12px;border-radius:8px;margin:16px 0;color:var(--text-dim);white-space:pre;text-align:left}.win-buttons{display:flex;gap:10px;justify-content:center;margin-top:16px}.btn-primary{border:none;border-radius:8px;background:var(--accent);color:#fff;font-weight:600}.btn-primary,.btn-secondary{font-family:var(--font);padding:10px 24px;cursor:pointer;font-size:.95rem}.btn-secondary{border:1px solid var(--cell-border);border-radius:8px;background:transparent;color:var(--text)}.auth-prompt{text-align:center;padding:16px;margin:12px auto;max-width:360px;background:var(--surface);border-radius:12px;border:1px solid var(--cell-border)}.auth-prompt p{margin:0 0 12px;color:var(--text-dim);font-size:.9rem}.center-screen{display:flex;justify-content:center;align-items:center;height:60vh;font-size:1.1rem;text-align:center;padding:20px}.center-screen,.loading-text{color:var(--text-dim)}.landing{display:flex;justify-content:center;align-items:center;min-height:70vh;padding:20px}.landing-content{max-width:400px;width:100%;text-align:center}.landing-title{font-size:3rem;font-weight:900;color:var(--accent);letter-spacing:.12em;margin:0 0 4px}.landing-date{font-size:.95rem;color:var(--text-dim);margin:0 0 32px}.landing-instructions{background:var(--surface);border:1px solid var(--cell-border);border-radius:12px;padding:24px;text-align:left;margin-bottom:28px}.landing-instructions h2{font-size:1.1rem;margin:0 0 14px;color:var(--text);text-align:center}.landing-instructions p{font-size:.9rem;color:var(--text-dim);line-height:1.5;margin:0 0 12px}.landing-instructions p:last-child{margin-bottom:0}.play-button{font-family:var(--font);font-size:1.1rem;font-weight:700;padding:14px 40px;border:none;border-radius:10px;background:var(--accent);color:#fff;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 16px rgba(230,57,86,.3)}.play-button:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(230,57,86,.4)}.play-button:active{transform:scale(.98)}.archive-page{max-width:500px;margin:0 auto;padding:20px}.archive-page h1{text-align:center;font-size:1.5rem;margin:0 0 8px;color:var(--text)}.archive-subtitle{text-align:center;color:var(--text-dim);font-size:.9rem;margin:0 0 24px}.archive-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.archive-header{font-size:.7rem;text-align:center;padding:4px 0}.archive-cell,.archive-header{font-weight:600;color:var(--text-dim)}.archive-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.75rem;border-radius:6px;background:var(--cell-bg);border:1px solid var(--cell-border);cursor:pointer;transition:all .15s;text-decoration:none}.archive-cell:hover{background:var(--cell-active);border-color:var(--accent)}.archive-cell.today{border-color:var(--accent);color:var(--accent);font-weight:700}.archive-cell.solved{background:var(--correct);border-color:var(--correct);color:#fff}.archive-cell.future{opacity:.3;cursor:default;pointer-events:none}.archive-cell.empty{background:transparent;border-color:transparent;cursor:default;pointer-events:none}.archive-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.archive-nav button{font-family:var(--font);font-size:.85rem;padding:6px 14px;border:1px solid var(--cell-border);background:var(--surface);color:var(--text);border-radius:6px;cursor:pointer}.archive-nav button:disabled{opacity:.3;cursor:default}.archive-month{font-size:1rem;font-weight:600;color:var(--text)}.contact-page{max-width:480px;margin:0 auto;padding:32px 20px;text-align:center}.contact-page h1{font-size:1.8rem;margin-bottom:8px;color:var(--text)}.contact-subtitle{color:var(--text-dim);margin-bottom:24px;font-size:.95rem}.contact-form{display:flex;flex-direction:column;gap:12px;text-align:left}.contact-form label{font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:-4px}.contact-input,.contact-textarea{font-family:var(--font);font-size:.95rem;padding:10px 14px;border:1px solid var(--cell-border);border-radius:6px;background:var(--surface);color:var(--text);outline:none;transition:border-color .15s}.contact-input:focus,.contact-textarea:focus{border-color:var(--accent)}.contact-textarea{resize:vertical;min-height:100px}.contact-btn{font-family:var(--font);font-size:1rem;font-weight:700;padding:12px 24px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:opacity .15s;margin-top:8px}.contact-btn:hover{opacity:.85}.contact-btn:disabled{opacity:.5;cursor:not-allowed}.contact-success{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 0}.contact-success h2{color:var(--correct);margin:0}.contact-success p{color:var(--text-dim);margin:0}.contact-error{color:var(--wrong);font-size:.85rem;margin-top:8px}.legal-page{max-width:640px;margin:0 auto;padding:32px 20px 60px}.legal-page h1{font-size:1.8rem;margin-bottom:4px;color:var(--text)}.legal-updated{color:var(--text-dim);font-size:.8rem;margin-bottom:24px}.legal-page h2{font-size:1.1rem;margin-top:28px;margin-bottom:8px;color:var(--text)}.legal-page p,.legal-page ul{color:var(--text-dim);font-size:.9rem;line-height:1.65;margin-bottom:12px}.legal-page ul{padding-left:24px}.legal-page a{color:var(--accent);text-decoration:underline}.site-footer{display:flex;justify-content:center;gap:16px;padding:20px;font-size:.75rem;color:var(--text-dim);border-top:1px solid var(--cell-border);margin-top:40px}.site-footer a{color:var(--text-dim);text-decoration:none}.site-footer a:hover{color:var(--text)}.tip-float{position:absolute;z-index:50;display:flex;align-items:center;gap:6px;background:hsla(0,0%,100%,.92);border:none;border-radius:8px;padding:10px 14px;box-shadow:0 4px 20px rgba(0,0,0,.4);animation:tipFadeIn .4s ease;transition:opacity .4s ease;pointer-events:auto;max-width:260px}.tip-text{font-size:.85rem;color:#1a1a2e;line-height:1.4;font-weight:500}.tip-close{background:none;border:none;color:#666;font-size:1.2rem;cursor:pointer;padding:0 2px;line-height:1;flex-shrink:0}.tip-close:hover{color:#1a1a2e}.tip-float.tip-below:before{top:-6px;border-bottom:6px solid hsla(0,0%,100%,.92)}.tip-float.tip-above:after,.tip-float.tip-below:before{content:"";position:absolute;left:50%;transform:translateX(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent}.tip-float.tip-above:after{bottom:-6px;border-top:6px solid hsla(0,0%,100%,.92)}@keyframes tipFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.intro-overlay{justify-content:center;min-height:70vh;padding:20px}.intro-content,.intro-overlay{display:flex;align-items:center}.intro-content{flex-direction:column;gap:16px;text-align:center}.intro-title{font-size:2.4rem;font-weight:800;color:var(--accent);letter-spacing:.1em;margin:0}.intro-subtitle{color:var(--text-dim);font-size:1rem;margin:0 0 8px}.intro-grid{display:flex;flex-direction:column;gap:4px;transition:transform .4s ease}.intro-grid-done{transform:scale(1.02)}.intro-row{display:flex;gap:4px}.intro-cell{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;border-radius:6px;background:var(--cell-bg);border:2px solid var(--cell-border);color:transparent;transition:all .2s ease}.intro-cell-filled{color:var(--text);animation:introPop .15s ease}.intro-cell-green{background:var(--correct);border-color:var(--correct);color:#fff}.intro-cell-highlight{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.intro-direction-label{height:24px;display:flex;align-items:center;justify-content:center}.intro-dir-text{font-size:.85rem;font-weight:600;color:var(--accent);letter-spacing:.05em}.intro-hint{color:var(--text-dim);font-size:.9rem;margin:8px 0 0;opacity:0;animation:introFadeIn .5s ease 2s forwards}.intro-actions{display:flex;flex-direction:column;align-items:center;gap:12px;opacity:0;transition:opacity .5s ease;pointer-events:none}.intro-actions-visible{opacity:1;pointer-events:auto}.intro-checkbox{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:.8rem;color:var(--text-dim)}.intro-checkbox input{width:14px;height:14px;accent-color:var(--accent)}@keyframes introPop{0%{transform:scale(.7)}60%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes introFadeIn{0%{opacity:0}to{opacity:1}}@media (max-width:400px){.grid{height:260px}.col-indicators,.grid{width:260px}.row-indicators{height:260px}.progress-track{width:260px}.cell{font-size:1.3rem}.key{min-width:28px;height:42px;font-size:.9rem}.key.wide{min-width:48px}}