body,body.dark{--message-background-color:yellow;--message-text-color:black}.rotate-message-block.show,body{color:var(--primary-text-color);text-align:center}.container,.container-top{overflow:hidden;max-width:540px}.keyboard,.keyboard-key{box-sizing:border-tile;user-select:none}.keyboard,.keyboard-key,.keyboard-row,body{user-select:none}#shareButton,#submit{background-color:#1e90ff}body{font-family:Arial,serif,Werdana,Helvetica;padding-top:auto;background-color:var(--primary-background-color);--primary-background-color:#EAEFEF;--primary-text-color:black;--key-background-color:lightgray;--key-text-color:black;--tiles-background-color:white;--links:black;--winner:#7BB068;--incorrect:#FF6B6B;--hint:#CF9FFF}body.dark{--primary-background-color:#222;--primary-text-color:white;--tiles-background-color:gray;--key-background-color:gray;--key-text-color:white;--filter:invert(1);--links:white}.rotate-message-block{display:none}.grid,.tile{display:grid}.rotate-message-text{margin-top:50px}.rotate-message-block.show{display:block;position:fixed;top:0;left:0;width:100%;height:100%;background:var(--primary-background-color);font-size:1.6rem;z-index:9999}#helpgrid,#tilegrid{display:flex;justify-content:center;align-items:start;margin-top:.5rem;width:100%;margin-left:1px;max-width:540px}.tile{border:1px solid #000;background-color:var(--tiles-background-color);font-size:2rem;font-weight:600;margin:2px;color:#000;text-transform:uppercase;place-items:center;height:45px}.close,.modal-content{color:var(--primary-text-color)}.grid{grid-template-rows:repeat(5,auto);grid-template-columns:repeat(6,auto);margin:1px}.modal-button,.toggle-button{display:inline-block;border:none;background:0 0;padding-top:12px;padding-left:4px;height:32px;width:32px}.image{filter:var(--filter);width:75%;height:75%}.modal{display:none;position:absolute;padding-top:20px;left:50%;top:50%;width:100%;height:100%;overflow:hidden;z-index:1;transform:translate(-50%,-50%)}.modal-content{position:relative;max-width:560px;width:92%;background:var(--primary-background-color);margin:auto;padding:10px;border:1px solid #888;text-align:left;animation-name:slidein;animation-duration:.4s}#clue,.action-buttons,.daily-clue{text-align:center}@keyframes slidein{from{top:-275px;opacity:.5}to{top:0;opacity:1}}.modal-header{margin-top:5px;font-size:1.5rem;border-bottom:2px solid #000;padding-bottom:2px;margin-bottom:12px}.daily-clue,h1,h2{margin-bottom:2px}.close{font-size:23px;font-weight:700;float:right}.close:focus,.close:hover{font-weight:700;text-decoration:none;cursor:pointer}#clue{margin-top:4px;margin-bottom:4px;padding-bottom:6px;font-size:25px;border-bottom:1px solid #000;z-index:1;visibility:hidden}#hint,#submit{padding:9px 8px;font-size:1.2rem;animation-name:shake;font-weight:700;touch-action:manipulation;color:#000;visibility:hidden}.daily-clue{margin-top:3px;padding-top:3px;font-size:1rem;z-index:1}#hint,#submit{margin-top:4px}#hint{background-color:#cf9fff;border:none;border-radius:5px;justify-content:flex-start}#submit{border:none;border-radius:5px;justify-content:flex-end}button:focus{outline:0}h1{text-align:left;margin-left:10px;margin-top:5px}.tiles-hint{background-color:var(--hint)}.tiles-incorrect{background-color:var(--incorrect)}.tiles-winner{background-color:var(--winner)}.reveal{animation:.5s flip}@keyframes flip{0%{transform:scaleX(1)}50%{transform:scaleX(0)}100%{transform:scaleX(1);background:var(--reveal)}}.shake{animation:.7s shake}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}.bounce{animation:1s bounce}@keyframes bounce{0%,20%{transform:translateY(0)}30%{transform:translateX(-5px)}40%{transform:translateY(-30px)}50%{transform:translateY(5px);transform:translateX(0)}60%{transform:translateY(-15px)}70%{transform:translateX(5px)}80%{transform:translateY(2px)}100%{transform:translateY(0);transform:translateX(0)}}.action-buttons{display:inline-block;vertical-align:top;display:flex;justify-content:space-between;margin-top:4px;margin-bottom:6px}#toggleDarkMode{background-color:none}.container{margin:0 auto;outline:black solid 2px;padding-bottom:5px;touch-action:manipulation}.container-top{margin:5px auto 0;outline:black solid 2px;padding-bottom:1px;display:flex;justify-content:space-between}.container-feedback{display:flex;flex-wrap:wrap;margin-top:25px;padding-bottom:2px;justify-content:space-around}.stats-detail,.stats-header{margin-top:2px;text-align:center}.stats-detail{font-size:28px}.stats-header{font-size:14 px}#shareButton,.keyboard-key{display:flex;cursor:pointer;font-size:1.25rem}.left-text{display:flex;padding-left:10px;justify-content:left}.right-buttons{display:flex;justify-content:flex-end;padding-right:5px}.keyboard{display:flex;flex-direction:column;justify-content:center;max-width:540px;padding-top:5px;margin:auto;align-items:center}.keyboard-row{display:flex;width:100%;touch-action:manipulation}.keyboard-key{justify-content:center;align-items:center;width:9.5%;margin:.8%;height:46px;border:1px solid gray;border-radius:5px;font-weight:700;touch-action:manipulation;background-color:var(--key-background-color);color:var(--key-text-color)}.email,.twitter{color:var(--links)}.keyboard-key:active{background-color:#464963;color:#fff}.email{margin-right:5px}.twitter{margin-left:5px}#shareButton{align-items:center;justify-content:center;color:#000;border:none;padding:10px 20px;border-radius:5px;visibility:hidden}.share-image{margin-left:30px}.popup-message{position:absolute;padding:14px;margin-top:5px;left:50%;transform:translateX(-50%);width:300px;background-color:var(--message-background-color);border:1px solid #000;z-index:7;display:none;font-size:1.2rem;color:var(--message-text-color);justify-content:center}.popup-message p{margin:0;padding:5px;font-size:12px}.center{justify-content:center}
/* ver003: pinch-zoom is allowed again, so stop double-tap zoom on quick taps anywhere on the page */
html,body{touch-action:manipulation}
#shareDotsDisplay{letter-spacing:2px}

/* ver004: past puzzles, save codes, catch-up */
body{--card-bg:#fff;--soft-border:#b5bcbc;--muted:#333}
body.dark{--card-bg:#333;--soft-border:#666;--muted:#ddd}
.icon-link{display:inline-block;width:32px;height:32px;padding-top:12px;padding-left:4px;color:var(--primary-text-color)}
.icon-link svg{display:block;width:24px;height:24px}
.wg-btn{display:inline-block;background:#1e90ff;color:#000;border:none;border-radius:6px;font-size:1.1rem;font-weight:700;padding:11px 16px;text-decoration:none;text-align:center;cursor:pointer}
.wg-btn-outline{display:inline-block;background:var(--card-bg);color:var(--primary-text-color);border:2px solid var(--primary-text-color);border-radius:6px;font-size:1rem;font-weight:700;padding:9px 14px;text-decoration:none;text-align:center;cursor:pointer}
.past-link{display:flex;align-items:center;gap:12px;margin:16px 6px 0;padding:12px 14px;background:var(--card-bg);color:var(--primary-text-color);border:2px solid var(--primary-text-color);border-radius:10px;text-decoration:none}
.past-link b{font-size:1.15rem}
.past-link small{display:block;font-size:.85rem;margin-top:2px}
.save-row{display:flex;align-items:center;gap:10px;margin:12px 6px 0;padding:8px 4px;border-top:1px solid var(--soft-border);border-bottom:1px solid var(--soft-border);color:var(--primary-text-color);text-decoration:none;cursor:pointer;background:none;border-left:none;border-right:none;width:calc(100% - 12px);font-size:1rem;text-align:left}
.catchup-bar{display:none;background:var(--message-background-color);color:#000;border-bottom:1px solid #000;padding:7px 8px;font-size:.95rem;font-weight:700;text-decoration:none;text-align:center}
.catchup-bar.show{display:block}
.card-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:20;overflow-y:auto}
.card-modal.show{display:block}
.card{position:relative;max-width:420px;width:calc(100% - 28px);box-sizing:border-box;margin:24px auto;background:var(--card-bg);color:var(--primary-text-color);border:2px solid #000;border-radius:12px;padding:18px 16px;text-align:left;display:flex;flex-direction:column;gap:14px}
.card h2{margin:0;font-size:1.4rem;text-align:center}
.card p{margin:0;font-size:1rem;line-height:1.45}
.card .fine{font-size:.82rem;line-height:1.4;color:var(--muted);text-align:center}
.card .big{font-size:2.6rem;font-weight:700;line-height:1;text-align:center}
.card .close-x{position:absolute;right:8px;top:4px;border:none;background:none;font-size:1.8rem;color:var(--primary-text-color);width:44px;height:44px;cursor:pointer}
.code-box{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--primary-background-color);border:2px dashed var(--primary-text-color);border-radius:10px;padding:12px 8px}
.code-box span:first-child{font-size:.8rem;font-weight:700;letter-spacing:1px}
.code-text{font-family:'Courier New',monospace;font-size:1.6rem;font-weight:700;letter-spacing:1px;word-break:break-all;text-align:center}
.shot-tip{display:flex;align-items:center;gap:12px;background:#FFF59D;color:#000;border-radius:10px;padding:10px 12px;font-size:.98rem;line-height:1.35}
.card label{font-size:1rem}
.card input[type=text]{font-size:16px;padding:10px;border:2px solid var(--primary-text-color);border-radius:6px;min-width:0;flex-grow:1;text-transform:uppercase;background:var(--card-bg);color:var(--primary-text-color)}
.card .row{display:flex;gap:8px;align-items:center}
.card .section{display:flex;flex-direction:column;gap:8px;border:2px solid var(--primary-text-color);border-radius:10px;padding:12px}
.card .compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;text-align:center;border-top:1px solid var(--soft-border);border-bottom:1px solid var(--soft-border);padding:10px 0}
.card .compare b{display:block;font-size:1.7rem}
.puzzle-nav{display:flex;justify-content:space-between;align-items:center;padding:4px 6px 0;font-size:.95rem}
.puzzle-nav a{font-weight:700;text-decoration:none;color:var(--primary-text-color);padding:8px 4px;min-width:52px}
.puzzle-nav a.disabled{visibility:hidden}
.puzzle-about{max-width:540px;margin:10px auto 0;padding:8px 10px;font-size:.92rem;line-height:1.45;text-align:left;border-top:1px solid var(--soft-border)}
.puzzle-about a{color:var(--links)}
/* archive list */
.arc{max-width:540px;margin:0 auto;text-align:left}
.arc-top{padding:12px 8px 8px;display:flex;flex-direction:column;gap:10px}
.arc-top h2{margin:0;font-size:1.5rem}
.season-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:2px solid var(--primary-text-color);border-radius:8px;overflow:hidden}
.season-tabs a{padding:9px 4px;text-align:center;font-weight:700;text-decoration:none;color:var(--primary-text-color);background:var(--card-bg);line-height:1.3}
.season-tabs a.on{background:var(--primary-text-color);color:var(--primary-background-color)}
.season-tabs small{display:block;font-weight:400;font-size:.8rem}
.filters{display:flex;gap:5px;flex-wrap:wrap;justify-content:center}
.filters button{border:2px solid var(--primary-text-color);background:var(--card-bg);color:var(--primary-text-color);border-radius:16px;padding:7px 10px;font-size:.9rem;font-weight:700;min-height:38px;cursor:pointer}
.filters button.on{background:var(--primary-text-color);color:var(--primary-background-color)}
.arc-month{font-size:.9rem;font-weight:700;padding:4px 10px;background:var(--primary-text-color);color:var(--primary-background-color)}
.arc-row{display:flex;align-items:center;gap:10px;padding:9px 8px;border-bottom:1px solid var(--soft-border)}
.arc-row.done{background:rgba(0,0,0,.05)}
.arc-when{width:56px;flex-shrink:0;display:flex;flex-direction:column;gap:2px}
.arc-when span{font-size:.8rem}
.arc-when b{font-size:.9rem}
.arc-clue{flex-grow:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.arc-clue a{font-size:1rem;color:var(--primary-text-color);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip{align-self:flex-start;font-size:.75rem;font-weight:700;padding:2px 7px;border-radius:10px}
.chip.Easy{background:#E2EFDA;color:#1E5631}.chip.Medium{background:#FFF2CC;color:#6B4E00}.chip.Tricky{background:#FCE4D6;color:#8A2E0B}
.arc-status{flex-shrink:0;width:78px;text-align:center;font-size:.9rem;font-weight:700}
.arc-status a.play{display:block;background:#1e90ff;color:#000;border-radius:6px;padding:10px 0;text-decoration:none}
.arc-status a.resume{display:block;border:2px solid #1e90ff;color:var(--primary-text-color);border-radius:6px;padding:8px 0;text-decoration:none}
.arc-status .won{color:#2E7D32}.arc-status .lost{color:#C62828}
body.dark .arc-status .won{color:#8BD48F}body.dark .arc-status .lost{color:#FF9A9A}
.arc-status small{display:block;font-weight:400;font-size:.75rem;letter-spacing:1px}
.arc-empty{margin:8px;padding:18px 16px;background:var(--card-bg);border:2px solid var(--primary-text-color);border-radius:10px;display:flex;flex-direction:column;gap:12px;line-height:1.45}
.card input[type=text]::placeholder{text-transform:none}
.played-line{margin:2px 0 0;text-align:center;font-size:1.15rem}
.surprise{align-self:center;min-width:60%;padding:12px 22px;font-size:1.1rem;border-radius:22px}
@media (max-width:380px){.filters{gap:4px}.filters button{padding:7px 8px;font-size:.85rem}}
.chip.Impossible{background:#2B2B2B;color:#fff}
