*,:before,:after{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{color:#d7dadc;background:#121213;min-height:100dvh;margin:0;font-family:Clear Sans,Helvetica Neue,Arial,sans-serif}#root{flex-direction:column;align-items:center;min-height:100dvh;display:flex}.app{flex-direction:column;align-items:stretch;width:100%;max-width:520px;min-height:100dvh;padding:8px 16px 24px;display:flex}.header{border-bottom:1px solid #3a3a3c;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-bottom:8px;padding:8px 0 12px;display:grid}.header-left{justify-self:start;min-width:0}.nav-home{color:#d7dadc;white-space:nowrap;font-size:.85rem;font-weight:600;text-decoration:none}.nav-home:hover{color:#fff;text-decoration:underline}.nav-home:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid #538d4e}.title{letter-spacing:.02em;text-align:center;grid-column:2;margin:0;font-size:clamp(1.5rem,5vw,2rem);font-weight:700}.header-right{grid-column:3;justify-self:end}.new-btn{font:inherit;color:#d7dadc;cursor:pointer;background:#121213;border:1px solid #565758;border-radius:6px;padding:8px 14px;font-size:.85rem;font-weight:600}.new-btn:hover{background:#2c2c2e}.new-btn:focus-visible{outline-offset:2px;outline:2px solid #538d4e}.toast{z-index:10;color:#d7dadc;pointer-events:none;background:#121213;border:1px solid #565758;border-radius:6px;padding:10px 16px;font-size:.95rem;font-weight:600;animation:.15s ease-out toast-in;position:fixed;top:20%;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000073}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(-6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.board-wrap{flex:1;justify-content:center;padding:12px 0 16px;display:flex}.board{flex-direction:column;gap:6px;display:flex}.row{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.row-shake{animation:.45s shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.tile{text-transform:uppercase;color:#d7dadc;-webkit-user-select:none;user-select:none;border:2px solid #3a3a3c;justify-content:center;align-items:center;width:min(64px,16vw);height:min(64px,16vw);font-size:clamp(1.15rem,5vw,1.75rem);font-weight:700;display:flex}.tile.filled{border-color:#565758}.tile.tile-reveal{animation:.55s forwards flip;animation-delay:var(--reveal-delay,0s);backface-visibility:hidden}@keyframes flip{0%{transform:rotateX(0)}49%{transform:rotateX(-90deg)}50%{transform:rotateX(-90deg)}to{transform:rotateX(0)}}.tile-correct{color:#fff;background:#538d4e;border-color:#538d4e}.tile-present{color:#fff;background:#b59f3b;border-color:#b59f3b}.tile-absent{color:#fff;background:#3a3a3c;border-color:#3a3a3c}.keyboard{flex-direction:column;gap:8px;margin-top:auto;padding-top:8px;display:flex}.kbd-row{justify-content:center;gap:6px;display:flex}.key{color:#fff;max-width:44px;height:52px;font:inherit;cursor:pointer;text-transform:uppercase;background:#818384;border:none;border-radius:4px;flex:32px;font-size:.8rem;font-weight:600}.key:hover{filter:brightness(1.08)}.key:focus-visible{outline-offset:2px;outline:2px solid #538d4e}.key-wide{flex:1.4 48px;max-width:none;font-size:.75rem}.key-correct{background:#538d4e}.key-present{background:#b59f3b}.key-absent{background:#3a3a3c}.end-msg{text-align:center;color:#a0a0a3;margin:8px 0 0;font-size:.95rem}.shared-banner{text-align:center;color:#9ca3af;margin:-4px 0 12px;font-size:.82rem;line-height:1.4}.footer-nav{text-align:center;margin-top:16px;padding-top:12px}.footer-nav-link{color:#6b7280;font-size:.85rem;text-decoration:none}.footer-nav-link:hover{color:#9ca3af;text-decoration:underline}.friendle-error{justify-content:flex-start}.friendle-error-msg{color:#d1d5db;margin:0 0 20px;line-height:1.5}.friendle-error-btn{color:#fff;text-align:center;background:#538d4e;border-radius:8px;padding:10px 18px;font-weight:600;text-decoration:none;display:inline-block}.friendle-error-btn:hover{filter:brightness(1.08)}.friendle-error .header-right{min-width:0}.fl-menu{width:100%;max-width:480px;min-height:100dvh;padding:20px 18px 40px}.fl-menu-header{margin-bottom:28px}.fl-back{color:#d7dadc;margin-bottom:16px;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-block}.fl-back:hover{color:#fff;text-decoration:underline}.fl-back:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid #538d4e}.fl-menu-title{color:#f3f4f6;margin:0 0 10px;font-size:clamp(1.5rem,4vw,2rem);font-weight:700}.fl-menu-lead{color:#9ca3af;margin:0;font-size:.95rem;line-height:1.5}.fl-actions{flex-direction:column;gap:12px;display:flex}.fl-action{color:inherit;text-align:left;background:#1a1a1c;border:1px solid #3a3a3c;border-radius:12px;padding:18px 16px;text-decoration:none;transition:border-color .15s,background .15s;display:block}.fl-action:hover{background:#1f2228;border-color:#538d4e}.fl-action:focus-visible{outline-offset:2px;outline:2px solid #538d4e}.fl-action--primary{background:#1a2219;border-color:#3d5a38}.fl-action--primary:hover{background:#1f2a1f;border-color:#538d4e}.fl-action-label{color:#f3f4f6;margin-bottom:6px;font-size:1.1rem;font-weight:700;display:block}.fl-action-desc{color:#a0a0a3;font-size:.88rem;line-height:1.45;display:block}.fl-panel{flex-direction:column;gap:10px;display:flex}.fl-field-label{letter-spacing:.04em;text-transform:uppercase;color:#6b7280;font-size:.8rem;font-weight:600}.fl-input{font:inherit;letter-spacing:.12em;color:#f3f4f6;background:#121213;border:1px solid #3a3a3c;border-radius:8px;padding:12px 14px;font-size:1.25rem}.fl-input:focus{border-color:#538d4e;outline:none;box-shadow:0 0 0 2px #538d4e59}.fl-hint{color:#6b7280;margin:0;font-size:.85rem}.fl-error{color:#f87171;margin:0;font-size:.9rem}.fl-share-block{border-top:1px solid #3a3a3c;margin-top:8px;padding-top:16px}.fl-share-label{color:#9ca3af;margin:0 0 6px;font-size:.8rem;font-weight:600}.fl-share-row{align-items:stretch;gap:8px;margin-bottom:16px;display:flex}.fl-code{word-break:break-all;color:#d1d5db;background:#0d0d0e;border:1px solid #3a3a3c;border-radius:8px;flex:1;min-width:0;padding:10px 12px;font-size:.75rem}.fl-code-room{letter-spacing:.06em;word-break:normal;font-size:1.1rem;font-weight:700}.fl-copy{color:#f3f4f6;font:inherit;cursor:pointer;background:#2c2c2e;border:1px solid #565758;border-radius:8px;flex-shrink:0;padding:0 14px;font-size:.85rem;font-weight:600}.fl-copy:hover{background:#3a3a3c}.fl-submit{color:#fff;font:inherit;cursor:pointer;background:#538d4e;border:none;border-radius:8px;margin-top:8px;padding:12px 18px;font-size:1rem;font-weight:700}.fl-submit:hover{filter:brightness(1.08)}.fl-submit:focus-visible{outline-offset:2px;outline:2px solid #86c47a}.home{flex-direction:column;align-items:stretch;width:100%;max-width:720px;min-height:100dvh;padding:24px 20px 48px;display:flex}.home-header{text-align:center;margin-bottom:32px}.home-brand{letter-spacing:.02em;color:#f3f4f6;margin:0 0 8px;font-size:clamp(1.75rem,5vw,2.25rem);font-weight:700}.home-subtitle{color:#9ca3af;margin:0;font-size:1rem;line-height:1.45}.home-section-title{letter-spacing:.08em;text-transform:uppercase;color:#6b7280;margin:0 0 14px;font-size:.75rem;font-weight:600}.game-grid{grid-template-columns:1fr;gap:14px;display:grid}@media (width>=560px){.game-grid{grid-template-columns:repeat(2,1fr)}}.game-card{color:inherit;text-align:left;background:#1a1a1c;border:1px solid #3a3a3c;border-radius:12px;padding:20px 18px;text-decoration:none;transition:border-color .15s,background .15s,box-shadow .15s;display:block}.game-card:hover:not(.game-card--disabled){background:#1f2228;border-color:#538d4e;box-shadow:0 8px 24px #00000059}.game-card:focus-visible{outline-offset:3px;outline:2px solid #538d4e}.game-card--disabled{cursor:not-allowed;opacity:.55}.game-card-title{color:#f3f4f6;margin:0 0 4px;font-size:1.2rem;font-weight:700}.game-card-tagline{color:#538d4e;margin:0 0 10px;font-size:.85rem;font-weight:600}.game-card-desc{color:#a0a0a3;margin:0;font-size:.9rem;line-height:1.45}.game-card-cta{color:#d7dadc;margin-top:14px;font-size:.85rem;font-weight:600}.game-card:hover:not(.game-card--disabled) .game-card-cta{color:#86c47a}.game-card-badge{letter-spacing:.06em;text-transform:uppercase;color:#9ca3af;background:#2c2c2e;border-radius:999px;margin-top:12px;padding:4px 10px;font-size:.7rem;font-weight:700;display:inline-block}.home-footer{text-align:center;color:#6b7280;margin-top:auto;padding-top:40px;font-size:.85rem}
