:root{--color-bg: #f9f6f0;--color-surface: #ffffff;--color-border: #d3cfc8;--color-text: #1a1a1a;--color-muted: #6b6b6b;--color-correct: #6aaa64;--color-present: #e5a428;--color-absent: #787c7e;--color-tile-bg: #ffffff;--color-tile-text: #1a1a1a;--color-key-bg: #d3d6da;--color-key-text: #1a1a1a;--color-accent: #538d4e;--color-error: #c0392b;--color-player-a: #c0392b;--color-player-b: #2471a3;--tile-size: min(clamp(30px, 11vw, 62px), max(20px, calc((100dvh - 360px) / 6)));--tile-gap: 6px;--radius: 4px;--font-mono: "Courier New", Courier, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:var(--color-bg);color:var(--color-text);height:100dvh;overflow:hidden;display:flex;flex-direction:column;touch-action:manipulation}header{display:flex;align-items:center;padding:8px 16px;border-bottom:1px solid var(--color-border);background:var(--color-surface);gap:12px}#home-link{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;flex:1}#home-link:hover .header__title{text-decoration:underline}.header__logo{height:36px;width:36px;object-fit:contain;border-radius:6px;flex-shrink:0}.header__title{font-size:1.2rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.header__links{display:flex;align-items:center;gap:12px;flex-shrink:0}.header__links a{font-size:.78rem;color:var(--color-muted);text-decoration:none;white-space:nowrap}.header__links a:hover{color:var(--color-accent);text-decoration:underline}.header__notif-btn{background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:4px;line-height:1;opacity:.75;transition:opacity .15s;display:flex;align-items:center}.header__notif-btn img{height:22px;width:22px;display:block}.header__notif-btn:hover,.header__notif-btn--on{opacity:1}.header__notif-btn--blocked{opacity:.75;cursor:default}#app{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;padding:10px 12px 12px;gap:10px;max-width:520px;width:100%;margin-inline:auto;overflow:hidden}.status{color:var(--color-muted);text-align:center;font-size:1rem;padding:12px 0}.status--waiting{display:flex;align-items:center;justify-content:center;gap:8px}.status__live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-correct);flex-shrink:0;animation:live-pulse 1.8s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.6)}}.error{color:var(--color-error);text-align:center;font-size:1rem;padding:16px}.scoreboard{width:100%;flex-shrink:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 12px}.scoreboard__players{display:flex;align-items:center;justify-content:space-between;gap:8px}.scoreboard__player{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;min-width:0}.scoreboard__vs{font-size:.85rem;color:var(--color-muted);flex-shrink:0}.scoreboard__name{font-size:.9rem;font-weight:600;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scoreboard__name--a{color:var(--color-player-a)}.scoreboard__name--b{color:var(--color-player-b)}.scoreboard__score{font-size:1.6rem;font-weight:700;line-height:1}.scoreboard__score--a{color:var(--color-player-a)}.scoreboard__score--b{color:var(--color-player-b)}.scoreboard__history{list-style:none;padding-left:0;display:flex;flex-direction:column;gap:8px}.scoreboard__round-num{color:var(--color-muted);margin-right:3px}.scoreboard__history-wrap{margin-top:8px;padding-top:8px;border-top:1px solid var(--color-border)}.scoreboard__toggle{background:none;border:none;padding:0;font-size:.75rem;color:var(--color-muted);cursor:pointer;margin-bottom:4px}.scoreboard__toggle:hover{color:var(--color-text)}.scoreboard__name--editable{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.scoreboard__name-input{font-size:.9rem;font-weight:600;border:1px solid var(--color-accent);border-radius:2px;padding:1px 4px;width:90px;outline:none}.scoreboard__round{font-size:.8rem;color:var(--color-muted);display:flex;flex-direction:column;gap:3px}.scoreboard__round--live{font-style:italic}.scoreboard__emoji{font-size:.7rem;line-height:1.4;letter-spacing:.05em;white-space:pre}.header__share-btn{background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:4px;line-height:1;opacity:.75;transition:opacity .15s;display:flex;align-items:center}.header__share-btn img{height:22px;width:22px;display:block}.header__share-btn:hover{opacity:1}.share-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-start;justify-content:center;padding-top:80px;z-index:100}.share-modal__box{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;max-width:420px;width:90%;position:relative;box-shadow:0 8px 32px #0000002e}.share-modal__close{position:absolute;top:8px;right:10px;background:none;border:none;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--color-muted);padding:0 4px}.share-modal__close:hover{color:var(--color-text)}.wordle-board{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;overflow:hidden}.wordle-board__grid{display:flex;flex-direction:column;gap:var(--tile-gap)}.wordle-board__row{display:flex;gap:var(--tile-gap)}.wordle-board__tile{width:var(--tile-size);height:var(--tile-size);border:2px solid var(--color-border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:calc(var(--tile-size) * .55);font-weight:700;text-transform:uppercase;font-family:var(--font-mono);background:var(--color-tile-bg);color:var(--color-tile-text);-webkit-user-select:none;user-select:none;perspective:250px;transition:border-color .1s}.wordle-board__tile--filled{border-color:#999}@keyframes tile-flip{0%{transform:rotateX(0)}49%{transform:rotateX(-90deg)}50%{transform:rotateX(-90deg)}to{transform:rotateX(0)}}.wordle-board__tile--flipping{animation:tile-flip .5s ease-in-out forwards}.wordle-board__tile--correct{background:var(--color-correct);border-color:var(--color-correct);color:#fff}.wordle-board__tile--present{background:var(--color-present);border-color:var(--color-present);color:#fff}.wordle-board__tile--absent{background:var(--color-absent);border-color:var(--color-absent);color:#fff}.wordle-board__message{font-size:1rem;font-weight:600;min-height:1.5em;text-align:center}.wordle-board__give-up{background:none;border:none;padding:0;font-size:.8rem;color:var(--color-muted);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.wordle-board__give-up:hover{color:var(--color-error)}.keyboard{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;padding-bottom:env(safe-area-inset-bottom,0px);--key-w: clamp(26px, calc(10vw - 6.9px) , 43px);--key-w-wide: clamp(40px, calc(15vw - 10px) , 65px)}.keyboard__row{display:flex;justify-content:center;gap:5px}.keyboard__key{width:var(--key-w);height:clamp(38px,6dvh,58px);flex:none;padding:0;border:none;border-radius:var(--radius);background:var(--color-key-bg);color:var(--color-key-text);font-size:clamp(.65rem,2.2vw,.85rem);font-weight:700;cursor:pointer;text-transform:uppercase;transition:background .15s,color .15s;-webkit-user-select:none;user-select:none}.keyboard__key--wide{width:var(--key-w-wide);font-size:clamp(.55rem,1.8vw,.75rem)}.keyboard__key:active{opacity:.8}.keyboard__key--correct{background:var(--color-correct);color:#fff}.keyboard__key--present{background:var(--color-present);color:#fff}.keyboard__key--absent{background:var(--color-absent);color:#fff}.word-picker{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.word-picker__prompt{color:var(--color-muted);font-size:.95rem;text-align:center}.word-picker__form{display:flex;gap:8px;width:100%;justify-content:center}.word-picker__input{width:min(100%,160px);font-size:1.4rem;font-family:var(--font-mono);font-weight:700;text-transform:uppercase;text-align:center;letter-spacing:.15em;padding:8px 12px;border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);outline:none}.word-picker__input:focus{border-color:var(--color-accent)}.word-picker__submit{padding:8px 18px;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer}.word-picker__submit:disabled{opacity:.6;cursor:default}.word-picker__error{color:var(--color-error);font-size:.875rem;min-height:1.2em}.new-game{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:360px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:24px;text-align:center}.new-game p{color:var(--color-muted);font-size:.95rem}.new-game form{display:flex;flex-direction:column;gap:12px;width:100%}.new-game label{display:flex;flex-direction:column;gap:4px;font-size:.875rem;font-weight:600;text-align:left}.new-game input[type=text]{padding:8px 12px;font-size:1rem;border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);outline:none}.new-game input[type=text]:focus{border-color:var(--color-accent)}.new-game button[type=submit]{padding:10px;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer}.new-game button[type=submit]:disabled{opacity:.6;cursor:default}.share-dialog{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.share-dialog__qr{border-radius:var(--radius);border:1px solid var(--color-border)}.share-dialog__link{font-size:.7rem;word-break:break-all;color:var(--color-muted);text-align:center;max-width:260px}.share-dialog__copy{padding:8px 20px;background:var(--color-surface);color:var(--color-text);border:2px solid var(--color-border);border-radius:var(--radius);font-size:.9rem;font-weight:600;cursor:pointer}.share-dialog__copy:hover{border-color:var(--color-accent)}.main-view{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;overflow:hidden}body:has(.word-picker) .main-view{justify-content:flex-start;padding-top:12px}body:has(.home-screen) #app{overflow-y:auto}.home-screen{display:flex;flex-direction:column;gap:20px;width:100%;padding-bottom:24px}.game-list{display:flex;flex-direction:column;gap:8px;width:100%}.game-list__header{display:flex;justify-content:space-between;align-items:center}.game-list__header h2{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted)}.game-list__delete-all{font-size:.8rem;color:var(--color-muted);background:none;border:none;cursor:pointer;padding:4px 0}.game-list__delete-all:hover{color:var(--color-error)}.game-list__items{list-style:none;display:flex;flex-direction:column;gap:6px}.game-card{display:flex;align-items:stretch;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.game-card__body{flex:1;padding:12px 16px;cursor:pointer;display:flex;flex-direction:column;gap:3px;min-width:0;outline:none}.game-card__body:hover,.game-card__body:focus-visible{background:#00000008}.game-card__opponent{font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-card__status{font-size:.8rem;color:var(--color-muted)}.game-card__status--my-turn{color:var(--color-correct);font-weight:600}.game-card__delete{padding:0 16px;background:none;border:none;border-left:1px solid var(--color-border);cursor:pointer;color:var(--color-muted);font-size:1.3rem;line-height:1;flex-shrink:0}.game-card__delete:hover{color:var(--color-error);background:#c0392b0d}.site-footer a:hover{text-decoration:underline}.game-card--solo{border-left:3px solid var(--color-present)}.new-game__or{font-size:.8rem;color:var(--color-muted);margin:0}.new-game__solo-btn{padding:8px 20px;background:none;color:var(--color-present);border:2px solid var(--color-present);border-radius:var(--radius);font-size:.95rem;font-weight:600;cursor:pointer;width:100%}.new-game__solo-btn:hover{background:var(--color-present);color:#fff}
