:root{color-scheme:light;--forest:#23473f;--ink:#25332f;--muted:#65716a;--cream:#f7f6f0;--line:#dddcd3;--green:#c8e9ca}*{box-sizing:border-box}body,html{background:var(--cream)}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink)}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.35;cursor:not-allowed}.brand{color:var(--forest);font-weight:900;font-size:21px;letter-spacing:-.7px;white-space:nowrap}.topbar{background:white;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:13px max(16px,calc((100vw - 1040px)/2));min-height:65px}.topbar .text-button{margin:0}.nav-button,.text-button{border:0;background:none;color:var(--forest);padding:8px;font-size:14px;font-weight:600}.content{max-width:960px;padding:32px 20px 70px;margin:auto}.eyebrow{color:#537c6d;font-size:11px;font-weight:800;letter-spacing:2px}.subtle{color:var(--muted);font-size:14px;line-height:1.6}.menu-heading h1,.puzzle-heading h1{font-family:Georgia,serif;font-size:clamp(30px,5vw,43px);margin:10px 0;letter-spacing:-1.2px}.menu-heading{margin-bottom:26px}.big-progress{border:1px solid var(--line);border-radius:14px;background:white;padding:22px 24px;margin:18px 0 14px}.big-progress strong{font-family:Georgia,serif;font-size:32px;display:block}.big-progress span{font-size:13px;color:var(--muted);display:block;margin-top:4px}.meter{height:8px;border-radius:15px;background:#e8eae2;overflow:hidden;margin-top:16px}.meter div{height:100%;background:#68a78a;transition:width .2s}.puzzle-list{margin-top:20px;background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}.puzzle-row{background:white;text-align:left;padding:16px 18px;border:0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;width:100%}.puzzle-row:last-child{border-bottom:0}.puzzle-row:hover{background:#f4f8f3}.puzzle-number{background:#e9eee7;color:#466858;width:44px;height:44px;display:grid;place-items:center;border-radius:11px;font-size:18px;font-family:Georgia,serif;font-weight:700}.puzzle-info{display:flex;flex-direction:column;gap:5px;flex:1 1}.puzzle-info strong{font-size:16px}.puzzle-info small{color:var(--muted);font-size:12px}.clue-count{font-weight:750;color:var(--forest)}.arrow{color:#7a9489;font-size:28px}.auth-wrap{min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:45px 22px}.auth-wrap>.brand{align-self:center}.auth-card{margin-top:65px;max-width:450px;width:100%;background:white;border:1px solid var(--line);padding:38px;border-radius:20px;box-shadow:0 10px 55px #233e3720}.auth-card h1{font:35px Georgia,serif;line-height:1.15;margin:12px 0}.auth-card form{margin-top:30px;display:flex;flex-direction:column;gap:18px}.auth-card label{display:block;font-weight:700;font-size:13px}.auth-card input{width:100%;height:46px;border:1px solid #cbd4ce;border-radius:9px;padding:10px;margin-top:7px;outline-color:#538772}.main-button{background:var(--forest);color:#fff;border:0;border-radius:9px;padding:13px 16px;font-weight:700;width:100%}.auth-card>.text-button{display:block;margin:16px auto}.status-msg{font-size:13px;padding:12px;border:1px solid #e0d9b8;background:#fffcef;border-radius:8px}.loading{min-height:80dvh;display:grid;place-content:center;text-align:center;padding:20px}.game{max-width:900px}.puzzle-heading{justify-content:space-between}.pager,.puzzle-heading{display:flex;align-items:center;gap:8px}.pager span{font-size:13px;color:var(--muted);white-space:nowrap}.pager button{border:1px solid var(--line);background:white;border-radius:9px;height:36px;width:36px;font-size:25px;color:var(--forest)}.puzzle-stats{max-width:550px;display:flex;align-items:center;gap:15px;margin:16px 0 24px}.puzzle-stats span{font-size:13px;color:#596a60;white-space:nowrap}.puzzle-stats .meter{flex:1 1;margin:0}.board-wrap{width:100%;max-width:550px;margin:0 auto 18px;position:relative}.board{width:100%;aspect-ratio:1/1;display:grid;grid-auto-rows:minmax(0,1fr);margin:0;border:2px solid #323c36;background:#323c36;grid-gap:1px;gap:1px;touch-action:manipulation;scroll-margin-top:12px}.black-cell{background:#25312d}.black-cell,.cell{min-width:0;min-height:0}.cell{position:relative;background:#fff;border:0;border-radius:0;display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden;color:#1e302a}.cell.active{background:#e7f1e9}.cell.correct,.cell.correct.active{background:var(--green)}.cell.focused{outline:2px solid #3b806c;outline-offset:-2px;background:#b9dbc8;z-index:1}.cell b{display:block;width:100%;text-align:center;line-height:1;font-weight:550;font-size:clamp(12px,3.25vw,26px);padding-top:2px}.cell small{position:absolute;left:2px;top:1px;font-size:clamp(6px,1.6vw,10px);font-weight:700;line-height:1}.keyboard-input{position:absolute;top:0;left:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0;font-size:16px;z-index:1}.clue-focus{max-width:550px;margin:18px auto 34px;background:white;border:1px solid var(--line);border-radius:13px;padding:19px 21px}.clue-focus p{font-size:17px;line-height:1.55;margin:9px 0 18px}.focus-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.focus-actions button{border:1px solid #cad6ce;border-radius:8px;padding:9px 12px;background:#f8faf7;color:var(--forest);font-size:12px;font-weight:700}.focus-actions .explain-btn{margin-left:auto;background:#e7efe5}.clue-focus .explanation{font-size:14px;line-height:1.6;padding:14px 15px;border-left:3px solid #80ad8f;background:#f1f8f0;border-radius:4px}.completed-banner{max-width:550px;margin:10px auto;background:#e5f5e4;padding:15px;border-radius:8px;text-align:center;color:#295b42;font-weight:700}.clue-groups{display:grid;grid-template-columns:1fr 1fr;grid-gap:26px;gap:26px}.clue-groups h2{font:26px Georgia,serif;margin:4px 0 12px}.clue-item{display:flex;align-items:flex-start;width:100%;gap:13px;padding:12px 11px;text-align:left;background:transparent;border:0;border-bottom:1px solid #e6e6df;border-radius:4px;color:var(--ink);font-size:14px;line-height:1.45}.clue-item.selected,.clue-item:hover{background:#e9f0e9}.clue-item b{min-width:19px;color:var(--forest)}.clue-item span:nth-child(2){flex:1 1}.clue-item.solved{color:#5c826d}.tick{color:#237b44;font-weight:700}.footer-note{text-align:center;margin-top:40px}@media(max-width:620px){.content{padding:24px 13px 70px}.topbar{padding:12px 14px}.clue-groups{grid-template-columns:1fr;gap:24px}.puzzle-heading h1{font-size:32px}.pager{gap:4px}.pager button{width:31px;height:31px}.board{max-width:100%}.cell small{left:1px;top:0}.cell b{font-size:clamp(12px,4vw,22px)}.clue-focus{padding:14px}.focus-actions .explain-btn{margin-left:0}.auth-card{margin-top:40px;padding:26px}.puzzle-row{padding:14px 12px;gap:12px}}.crossword-keypad,.solve-topbar{display:none}@media(max-width:620px){.play-stage.solving{position:fixed;inset:0;z-index:100;box-sizing:border-box;width:100%;height:100dvh;display:flex;flex-direction:column;align-items:center;padding:env(safe-area-inset-top,0) 8px env(safe-area-inset-bottom,0);background:var(--cream);overflow:hidden}.play-stage.solving .solve-topbar{display:flex;width:100%;max-width:550px;min-height:44px;flex-shrink:0;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding:4px 2px 6px;color:var(--forest)}.solve-topbar button{border:0;background:transparent;color:var(--forest);font-weight:700;padding:8px 5px;min-width:62px}.solve-topbar div{display:flex;align-items:center;flex-direction:column;gap:2px;font-size:14px}.solve-topbar div span{font-size:11px;color:var(--muted)}.play-stage.solving .board-wrap{width:min(calc(100vw - 16px),calc(100dvh - 282px),550px);min-width:0;min-height:0;flex:0 0 auto;margin:6px auto 8px}.play-stage.solving .board{width:100%;margin:0}.play-stage.solving .clue-focus{box-sizing:border-box;width:100%;max-width:550px;margin:0 0 4px;padding:9px 11px;min-height:0;max-height:145px;overflow-y:auto;overscroll-behavior:contain;flex:1 1 auto}.play-stage.solving .clue-focus .eyebrow{font-size:10px;letter-spacing:1.3px}.play-stage.solving .clue-focus p{font-size:14px;line-height:1.28;margin:5px 0 7px}.play-stage.solving .focus-actions{gap:5px}.play-stage.solving .focus-actions button{font-size:11px;padding:5px 8px;min-height:29px}.play-stage.solving .clue-focus .explanation{font-size:12px;line-height:1.35;padding:8px;margin-top:8px}.play-stage.solving .crossword-keypad{display:flex;width:100%;max-width:550px;flex-direction:column;gap:4px;margin-top:auto;padding:5px 0 6px;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.keypad-row{display:flex;justify-content:center;gap:4px;width:100%}.keypad-key{flex:1 1;min-width:0;height:clamp(32px,5.5dvh,43px);padding:0;border:1px solid #cbd6cb;border-radius:6px;background:white;color:var(--forest);font-size:16px;font-weight:700;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none}.keypad-key:active{background:#c8e9ca}.keypad-delete{background:#e3eae4;font-size:23px}.play-stage.solving .keyboard-input{display:none}}