:root{--paper:#f6f5ef;--ink:#263c31;--green:#315b47;--muted:#797d70;--line:#e5e5dc;--soft:#edf1e9;--gold:#d4a35d;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.header{max-width:1120px;margin:auto;height:105px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 25px}.wordmark{text-decoration:none;font-size:30px;font-weight:750;letter-spacing:-1.5px;display:block;line-height:1}.brand-name{display:block}.brand-tagline{display:block;font-size:11px;font-weight:400;letter-spacing:.2px;line-height:1.2;margin-top:7px;color:var(--muted)}.header-note{font-size:13px;color:var(--muted)}main{max-width:1000px;margin:auto;padding:0 25px}.intro{text-align:center;padding:46px 0 34px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;display:flex;align-items:center;justify-content:center;gap:8px}.eyebrow span{height:6px;width:6px;background:var(--gold);border-radius:100%}h1{font:normal 44px/1.15 Georgia,'Times New Roman',serif;letter-spacing:-1.5px;margin:16px 0 13px}.intro p{color:var(--muted);font-size:14px;margin:0}.layout{display:grid;grid-template-columns:minmax(0,548px) minmax(0,300px);gap:42px;justify-content:center;align-items:start}.puzzle-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;box-shadow:0 5px 20px #2b342507}.puzzle-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.puzzle-top h2{font-size:16px;font-weight:600;margin:0 0 7px}.puzzle-top time{font-size:12px;color:var(--muted)}.level{font-size:10px;font-weight:600;background:var(--soft);color:var(--green);padding:7px 10px;border-radius:20px;white-space:nowrap}.game-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin:24px 0 12px}.timer{font-variant-numeric:tabular-nums}.board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));aspect-ratio:1;border:2px solid var(--ink);background:var(--ink);gap:0;overflow:visible;border-radius:3px}.cell{padding:0;border:0;border-right:1px solid #d9ddd5;border-bottom:1px solid #d9ddd5;background:#fff;display:flex;align-items:center;justify-content:center;position:relative;font-size:clamp(19px,3vw,27px);font-weight:400;min-width:0;min-height:0;color:#46755f;touch-action:manipulation}.cell:nth-child(3n){border-right:2px solid var(--ink)}.cell:nth-child(9n){border-right:0}.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--ink)}.cell:nth-child(n+73){border-bottom:0}.cell.given{color:var(--ink);font-weight:600;background:#fafbf7}.cell.related{background:#f0f3ed}.cell.match{background:#e4ecdf}.cell.selected{background:#dce8d3;z-index:1}.cell.conflict{color:#b24839;background:#faeae5}.cell:focus-visible{outline:none;z-index:1}.cell .pencil{position:absolute;inset:3px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);font-size:10px;color:#75816b;align-items:center}.print-value{display:none}.game-status{min-height:42px;padding:13px 0 8px;text-align:center;font-size:11px;color:var(--muted)}.keypad{display:grid;grid-template-columns:repeat(9,1fr);gap:6px}.keypad button{border:1px solid var(--line);border-radius:7px;background:var(--paper);height:43px;font-size:21px;color:var(--green)}.keypad button:hover{background:#e6ecdf}.game-tools{display:grid;grid-template-columns:repeat(4,1fr);padding:18px 0 17px;gap:4px}.tool{border:0;background:none;font-size:20px;border-radius:6px;padding:6px 0;display:flex;flex-direction:column;align-items:center;gap:7px}.tool span{font-size:10px;color:var(--muted)}.tool:hover,.tool[aria-pressed=true]{background:var(--soft)}button:disabled{opacity:.35;cursor:default}.puzzle-bottom{border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;gap:8px;font-size:9px;color:var(--muted);align-items:center}.puzzle-bottom button{border:0;background:none;font-size:10px;color:var(--muted);text-decoration:underline;padding:2px}.saved-dot{display:inline-block;width:5px;height:5px;background:#8ca881;border-radius:50%;margin-right:4px}.sidebar{padding-top:20px}.small-label{font-size:9px;letter-spacing:1.8px;color:var(--muted);font-weight:600}.welcome h2{font:normal 37px/1.16 Georgia,serif;letter-spacing:-1px;margin:17px 0}.welcome p,.how-to p{font-size:13px;line-height:1.8;color:var(--muted)}.side-actions{display:flex;flex-direction:column;gap:10px;margin-top:24px}.side-actions button{border-radius:7px;display:flex;justify-content:center;align-items:center;gap:9px;font-size:12px;height:44px}.side-actions svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.primary{background:var(--green);color:#fff;border:1px solid var(--green)}.primary:hover{background:#254735}.secondary{background:transparent;border:1px solid #d7dace}.secondary:hover{background:var(--soft)}.welcome .next-puzzle{font-size:10px;text-align:center;margin-top:14px}.how-to{border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.how-to h3{font-size:13px;margin:0}.how-to p{font-size:12px;margin:10px 0}.how-to summary{font-size:11px;cursor:pointer;color:var(--green);padding:6px 0}.advertisement{margin-top:29px;border:1px solid #dedfd2;border-radius:9px;background:#edeee4;padding:19px}.ad-label{font-size:8px;color:#8a8e7e;letter-spacing:1.8px}.ad-title{font:normal 23px/1.2 Georgia,serif;margin:17px 0 9px}.ad-copy{font-size:11px;line-height:1.7;color:var(--muted);margin-bottom:0}.ad-link{display:inline-block;margin-top:14px;font-size:11px;color:var(--green)}.closing{font-size:12px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:10px;margin:35px 0 40px}.closing span{color:var(--gold);font-size:22px}footer{max-width:1070px;margin:0 auto;padding:23px 0 28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:10px;color:var(--muted)}.footer-brand{font-weight:700;font-size:15px;text-decoration:none;color:var(--green);letter-spacing:-.5px}noscript{display:block;text-align:center;padding:30px}@media(min-width:1400px){.intro{padding-top:60px;padding-bottom:42px}}@media(max-width:800px){.layout{gap:24px;grid-template-columns:minmax(0,500px) minmax(0,240px)}.puzzle-card{padding:18px}.sidebar{padding-top:15px}footer{margin:0 25px}.welcome h2{font-size:32px}}@media(max-width:660px){.header{height:77px;margin:0 20px;padding:0}.wordmark{font-size:26px}.header-note{font-size:10px}main{padding:0 16px}.intro{padding:30px 0 25px}h1{font-size:34px}.intro p{font-size:12px}.eyebrow{font-size:8px;letter-spacing:1.6px}.layout{grid-template-columns:minmax(0,460px);gap:25px}.puzzle-card{padding:17px}.puzzle-top h2{font-size:14px}.cell{font-size:25px}.keypad{gap:4px}.keypad button{height:42px;font-size:21px}.sidebar{padding:0 7px}.welcome h2,.welcome>.small-label,.welcome>p:not(.next-puzzle){display:none}.side-actions{margin-top:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.side-actions button{font-size:11px;gap:6px}.how-to{margin-top:22px}.advertisement{margin-top:20px}.closing{font-size:11px;margin:28px 0}footer{margin:0 23px;flex-wrap:wrap;font-size:9px}footer>span:last-child{display:none}}@media(prefers-reduced-motion:no-preference){button{transition:background .12s}}@media print{@page{size:A4;margin:20mm}:root,body{background:#fff;color:#000}.header{height:auto;border:0;padding:0;margin:0 0 20px;max-width:none}.header-note,.intro,.sidebar,.game-meta,.game-status,.keypad,.game-tools,.puzzle-bottom,.closing,footer,noscript{display:none!important}main{padding:0;max-width:none}.layout{display:block}.puzzle-card{padding:0;border:0;box-shadow:none;max-width:160mm;margin:auto}.puzzle-top{margin-bottom:20px}.puzzle-top h2{font-size:20px}.puzzle-top time{color:#000}.level{background:none;border:1px solid #aaa}.board{width:160mm;height:160mm;border-color:#000}.cell,.cell.given,.cell.related,.cell.selected,.cell.conflict,.cell.match{background:#fff!important;box-shadow:none!important;outline:none!important;color:#000!important;border-color:#777;border-radius:0}.cell:nth-child(3n),.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-color:#000}.screen-value,.pencil{display:none!important}.print-value{display:block;font-size:25px}.puzzle-card:after{content:'Vul elke rij, kolom en elk blok met 1 tot en met 9. Veel puzzelplezier!   •   sudokutje.nl';display:block;margin-top:20px;font-size:11px;text-align:center}}

.cell .pencil[hidden]{display:none}
.word-board{display:grid;gap:7px;max-width:320px;margin:0 auto;border-radius:4px;outline-offset:5px}.word-board:focus-visible{outline:2px solid var(--gold)}.word-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.word-cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border:1px solid #d7dace;border-radius:5px;background:#fafbf7;color:var(--ink);font-size:28px;font-weight:600;position:relative}.word-row.active .word-cell{border-color:#b3bdab;background:#fff}.word-row.active .word-cell.filled{border-color:var(--green);background:var(--soft)}.word-cell.correct,.word-key.correct,.legend-cell.correct{background:var(--green);border-color:var(--green);color:#fff}.word-cell.present,.word-key.present,.legend-cell.present{background:var(--gold);border-color:var(--gold);color:var(--ink)}.word-cell.absent,.word-key.absent,.legend-cell.absent{background:var(--line);border-color:var(--line);color:#565c51}.word-status{min-height:54px;font-size:12px;line-height:1.6;padding:14px 0 10px}.word-keyboard{display:flex;flex-direction:column;gap:6px;margin-bottom:23px}.word-key-row{display:flex;gap:4px;justify-content:center}.word-key-row:nth-child(2){width:90%;align-self:center}.word-key{flex:1;min-width:0;height:46px;padding:0;border:1px solid #d7dace;border-radius:5px;background:var(--paper);font-size:16px;font-weight:600;touch-action:manipulation;user-select:none;-webkit-user-select:none}.word-key-wide{flex:1.55;font-size:11px}.word-key:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--green)}.word-key:disabled{opacity:1;cursor:default}.word-card[aria-busy=true] .word-key{opacity:.5}.word-result{background:var(--soft);padding:17px;border-radius:8px;margin:0 0 18px;text-align:center}.word-result[hidden]{display:none}.word-result h3{font:normal 23px/1.2 Georgia,serif;margin:0 0 9px}.word-result p{font-size:12px;line-height:1.7;margin:0 0 10px;color:var(--muted)}.word-result a{font-size:11px;color:var(--green)}.word-legend{list-style:none;padding:0;margin:18px 0;display:flex;flex-direction:column;gap:9px;font-size:11px;color:var(--muted)}.word-legend li{display:flex;gap:10px;align-items:center}.legend-cell{width:27px;height:27px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:15px}.word-actions a{border-radius:7px;display:flex;justify-content:center;align-items:center;gap:9px;font-size:12px;height:44px;text-decoration:none}.word-game .header-note{text-decoration:none}.word-game footer>span:last-child{display:inline}@media(max-width:660px){.word-game h1{font-size:31px}.word-board{max-width:290px;gap:6px}.word-row{gap:6px}.word-cell{font-size:26px}.word-key{height:45px;font-size:15px}.word-key-wide{font-size:10px}.word-actions a{font-size:11px}.word-card .puzzle-bottom{font-size:9px}.word-card .puzzle-bottom>span:last-child{display:none}}@media(max-width:360px){.word-key-row{gap:3px}.word-key{font-size:13px}.word-key-wide{font-size:9px}.word-game h1{font-size:27px}.word-card .puzzle-top{gap:6px}.word-card .puzzle-top h2{font-size:13px}}@media print{.word-game .puzzle-card:after{display:none}.word-game .word-keyboard,.word-game .word-result{display:none}.word-board{width:90mm}.word-cell{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.hub-wordmark{font-size:28px;font-weight:750;letter-spacing:-1px;text-decoration:none}.hub-wordmark span{color:var(--gold)}.puzzle-hub .intro{padding-bottom:38px}.puzzle-library{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.puzzle-entry{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;padding:25px}.entry-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:27px}.entry-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:var(--soft);border-radius:12px;font-size:32px}.entry-icon svg{width:40px;height:40px;fill:none;stroke:var(--green);stroke-width:1.5}.entry-letter{font:normal 32px Georgia,serif}.puzzle-entry h2{font:normal 27px/1.2 Georgia,serif;letter-spacing:-.5px;margin:12px 0 0}.puzzle-entry p{font-size:13px;line-height:1.8;color:var(--muted);margin:14px 0 25px}.entry-link,.entry-unavailable{display:block;margin-top:auto;padding:13px 8px;border-radius:7px;text-align:center;text-decoration:none;font-size:12px}.entry-unavailable{background:var(--soft);color:var(--muted)}.entry-note{font-size:10px;color:var(--muted);text-align:center;margin-top:12px}.entry-upcoming{background:#fafaf6}.puzzle-hub .closing{margin-top:40px}@media(max-width:800px){.puzzle-library{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:660px){.puzzle-library{grid-template-columns:1fr;max-width:460px;margin:auto}.puzzle-entry{padding:23px}.entry-top{margin-bottom:20px}.puzzle-hub .intro{padding-bottom:28px}}@media print{.puzzle-library{display:block}.puzzle-entry{break-inside:avoid;margin-bottom:20px}.entry-link{color:#000;background:#fff}}
.keypad button{touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.variant{text-align:center;margin:36px auto 0;padding:25px 16px;border-top:1px solid var(--line)}.variant h2{font:normal 25px/1.2 Georgia,serif;margin:0 0 10px}.variant p{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 18px}.variant a{display:inline-block;padding:13px 20px;border-radius:7px;text-decoration:none;font-size:12px}@media print{.variant{display:none!important}}

/* Center the selection on the shared grid lines, including block boundaries. */
.cell{--edge-left:1px;--edge-top:1px;--edge-right:1px;--edge-bottom:1px}
.cell:nth-child(9n+1){--edge-left:2px}
.cell:nth-child(9n+4),.cell:nth-child(9n+7){--edge-left:2px}
.cell:nth-child(3n){--edge-right:2px}
.cell:nth-child(9n){--edge-right:2px}
.cell:nth-child(-n+9){--edge-top:2px}
.cell:nth-child(n+28):nth-child(-n+36),.cell:nth-child(n+55):nth-child(-n+63){--edge-top:2px}
.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){--edge-bottom:2px}
.cell:nth-child(n+73){--edge-bottom:2px}
.cell.selected::after,.cell:focus-visible::after{content:"";position:absolute;pointer-events:none;left:calc(var(--edge-left) / -2);top:calc(var(--edge-top) / -2);right:calc(var(--edge-right) / -2);bottom:calc(var(--edge-bottom) / -2);outline:2px solid var(--green);outline-offset:-1px;z-index:2}
@media print{.cell::after{display:none!important}}

/* Edge cells have no own border: reach the center of the board border. */
.cell:nth-child(9n).selected::after,.cell:nth-child(9n):focus-visible::after{right:-1px}
.cell:nth-child(n+73).selected::after,.cell:nth-child(n+73):focus-visible::after{bottom:-1px}

/* Keep the phone game inside the visible viewport, including browser bars. */
.word-mobile-actions{display:none}
.header-actions{display:flex;align-items:center;gap:16px}
.focus-toggle{display:flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 10px;border:1px solid #d7dace;background:transparent;border-radius:7px;font-size:11px;white-space:nowrap}
.focus-toggle:hover{background:var(--soft)}
.focus-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sudoku-focus-actions{display:none}
.focus-view .header-actions{gap:0}
.focus-print{width:100%;height:44px;border-radius:7px;margin-top:20px;font-size:12px}
@media(max-width:660px){.header-actions{gap:8px}.header-actions .header-note{display:none}.focus-toggle{min-height:44px}}
@media screen and (max-width:660px){.focus-view .focus-toggle{width:42px;height:44px;padding:0;border:0}.focus-view .focus-toggle span{display:none}.word-game.focus-view .wordmark{font-size:24px}}
@media screen and (max-width:360px){.focus-view .focus-toggle{width:36px}.word-game.focus-view .wordmark{font-size:20px}}
.word-key svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.word-dialog{width:min(390px,calc(100% - 28px));max-height:calc(100dvh - 40px);padding:30px 24px 24px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);box-shadow:0 12px 60px #263c3126;overflow:auto;overscroll-behavior:contain}
.word-dialog::backdrop{background:rgb(0 0 0 / 22%)}
.word-dialog h2{font:normal 28px/1.2 Georgia,serif;margin:10px 35px 20px 0}
.word-dialog-close{position:absolute;top:7px;right:7px;width:44px;height:44px;padding:0;border:0;border-radius:7px;background:transparent;font-size:27px;color:var(--muted)}
.word-dialog-close:hover{background:var(--soft)}
.word-dialog .how-to{border:0;padding:0;margin:0}
.word-dialog-credit{font-size:10px;color:var(--muted);line-height:1.8;margin:22px 0 0}
.word-dialog .advertisement{margin-top:22px}
.word-end-dialog{padding-top:48px;text-align:center}
.word-end-dialog .word-result{background:transparent;padding:0;margin:0 0 22px}
.word-end-dialog .word-result h3{font-size:27px}
.word-end-dialog .word-result p{font-size:13px}
#word-result-share{height:46px;width:100%;border-radius:7px;font-size:13px}

@media screen{
  body.word-game.focus-view{position:fixed;inset:0;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:none}
  .word-game.focus-view .header{flex:none;height:calc(56px + env(safe-area-inset-top,0px));min-height:56px;max-width:none;margin:0;padding:env(safe-area-inset-top,0px) max(10px,env(safe-area-inset-right,0px)) 0 max(14px,env(safe-area-inset-left,0px));gap:8px}
  .word-game.focus-view .wordmark{font-size:25px;white-space:nowrap}
  .word-game.focus-view .brand-tagline,.word-game.focus-view .header-note,.word-game.focus-view .intro,.word-game.focus-view .closing,.word-game.focus-view .sidebar,.word-game.focus-view footer,.word-game.focus-view noscript{display:none}
  .focus-view .word-mobile-actions{display:flex;align-items:center;gap:0}
  .focus-view .word-mobile-actions a,.focus-view .word-mobile-actions button{width:42px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:6px;padding:0;touch-action:manipulation}
  .focus-view .word-mobile-actions svg{width:21px;height:21px;fill:none;stroke:var(--green);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
  .word-game.focus-view main{flex:1;min-height:0;max-width:none;width:100%;padding:0 max(6px,env(safe-area-inset-right,0px)) 0 max(6px,env(safe-area-inset-left,0px));display:flex}
  .word-game.focus-view .layout{flex:1;min-height:0;width:100%;display:flex;gap:0}
  .word-game.focus-view .word-card{flex:1;min-height:0;max-width:500px;height:100%;margin:auto;padding:10px 0 max(8px,env(safe-area-inset-bottom,0px));border:0;border-radius:0;background:transparent;box-shadow:none;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) 46px auto}
  .word-game.focus-view .puzzle-top{grid-row:1;display:block;text-align:center}
  .word-game.focus-view .puzzle-top h2{font-size:13px;font-weight:500;margin:0;line-height:18px}
  .word-game.focus-view .puzzle-top time,.word-game.focus-view .puzzle-top .level{display:none}
  .word-game.focus-view .game-meta{grid-row:2;margin:4px 0 8px;justify-content:center;line-height:14px;font-size:10px}
  .word-game.focus-view .game-meta>span:last-child{display:none}
  .word-game.focus-view .word-board-space{grid-row:3;min-height:0;container-type:size;display:grid;place-items:center;padding:0}
  .word-game.focus-view .word-board{width:min(320px,100cqw,calc((100cqh - 6px)*.833333));max-width:none;margin:0;gap:6px}
  .word-game.focus-view .word-row{gap:6px}
  .word-game.focus-view .word-cell{font-size:clamp(16px,5dvh,30px);border-radius:4px}
  .word-game.focus-view .word-status{grid-row:4;min-height:0;padding:5px 12px;align-self:center;line-height:16px;font-size:11px}
  .word-game.focus-view .word-keyboard{grid-row:5;gap:7px;margin:0;width:100%;align-self:end}
  .word-game.focus-view .word-key-row{gap:5px}
  .word-game.focus-view .word-key{height:clamp(46px,7.4dvh,62px);border:0;border-radius:6px;font-size:17px;font-weight:600;-webkit-touch-callout:none}
  .word-game.focus-view .word-key:not(.correct):not(.present):not(.absent){background:#e0e5db}
  .word-game.focus-view .word-key:active:not(:disabled){transform:translateY(1px);filter:brightness(.93)}
  .word-game.focus-view .word-key-wide{font-size:12px;flex:1.55}
  .word-game.focus-view .word-key:hover:not(:disabled){box-shadow:none}
  .word-game.focus-view .puzzle-bottom,.word-game.focus-view #word-result-slot{display:none}
}
@media screen and (max-width:360px){
  .word-game.focus-view .wordmark{font-size:23px}
  .focus-view .word-mobile-actions a,.focus-view .word-mobile-actions button{width:38px}
  .word-game.focus-view .word-key-row{gap:4px}
  .word-game.focus-view .word-key{font-size:16px}
  .word-game.focus-view .word-key-wide{font-size:11px}
}
@media screen and (orientation:landscape) and (max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .word-game.focus-view .word-card{max-width:none;column-gap:20px;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);grid-template-rows:auto auto minmax(0,1fr) auto}
  .word-game.focus-view .puzzle-top,.word-game.focus-view .game-meta{grid-column:1 / -1}
  .word-game.focus-view .word-board-space{grid-column:1;grid-row:3 / 5}
  .word-game.focus-view .word-status{grid-column:2;grid-row:3}
  .word-game.focus-view .word-keyboard{grid-column:2;grid-row:4}
  .word-game.focus-view .word-cell{font-size:clamp(16px,4dvh,24px)}
}

@media screen{
  body.sudoku-game.focus-view{position:fixed;inset:0;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:none}
  .sudoku-game.focus-view .header{flex:none;height:calc(56px + env(safe-area-inset-top,0px));min-height:56px;max-width:none;margin:0;padding:env(safe-area-inset-top,0px) max(10px,env(safe-area-inset-right,0px)) 0 max(14px,env(safe-area-inset-left,0px));gap:8px}
  .sudoku-game.focus-view .wordmark{font-size:25px}
  .sudoku-game.focus-view .brand-tagline,.sudoku-game.focus-view .header-note,.sudoku-game.focus-view .intro,.sudoku-game.focus-view .sidebar,.sudoku-game.focus-view .variant,.sudoku-game.focus-view .closing,.sudoku-game.focus-view footer,.sudoku-game.focus-view noscript{display:none}
  .sudoku-game.focus-view .sudoku-focus-actions{display:flex;align-items:center;gap:0}
  .sudoku-focus-actions a,.sudoku-focus-actions button{width:42px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:6px;padding:0;touch-action:manipulation}
  .sudoku-focus-actions svg{width:21px;height:21px;fill:none;stroke:var(--green);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
  .sudoku-game.focus-view main{flex:1;min-height:0;max-width:none;width:100%;padding:0 max(8px,env(safe-area-inset-right,0px)) 0 max(8px,env(safe-area-inset-left,0px));display:flex}
  .sudoku-game.focus-view .layout{flex:1;min-height:0;width:100%;display:flex;gap:0}
  .sudoku-game.focus-view .puzzle-card{flex:1;min-height:0;max-width:548px;height:100%;margin:auto;padding:10px 0 max(8px,env(safe-area-inset-bottom,0px));border:0;border-radius:0;background:transparent;box-shadow:none;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) 36px auto auto auto}
  .sudoku-game.focus-view .puzzle-top{grid-row:1;justify-content:center}
  .sudoku-game.focus-view .puzzle-top h2{font-size:13px;font-weight:500;margin:0;line-height:18px;text-align:center}
  .sudoku-game.focus-view .puzzle-top time,.sudoku-game.focus-view .puzzle-top .level{display:none}
  .sudoku-game.focus-view .game-meta{grid-row:2;margin:4px 8px 8px;font-size:10px;line-height:14px}
  .sudoku-game.focus-view .sudoku-board-space{grid-row:3;min-height:0;container-type:size;display:grid;place-items:center;padding:3px}
  .sudoku-game.focus-view .board{width:min(440px,calc(100cqw - 6px),calc(100cqh - 6px));height:auto;aspect-ratio:1}
  .sudoku-game.focus-view .cell{font-size:clamp(16px,3.3dvh,27px)}
  .sudoku-game.focus-view .game-status{grid-row:4;min-height:0;padding:4px 8px;align-self:center;font-size:11px;line-height:14px}
  .sudoku-game.focus-view .keypad{grid-row:5;gap:5px}
  .sudoku-game.focus-view .keypad button{height:clamp(44px,6.5dvh,52px);background:#e0e5db;border:0;font-size:22px}
  .sudoku-game.focus-view .game-tools{grid-row:6;padding:6px 0;gap:4px}
  .sudoku-game.focus-view .tool{height:48px;gap:3px;padding:4px 0;font-size:19px}
  .sudoku-game.focus-view .puzzle-bottom{grid-row:7;padding:6px 5px 0;min-height:30px}
  .sudoku-game.focus-view #restart{min-height:24px;padding:0 8px}
}
@media screen and (max-width:360px){
  .focus-view .focus-toggle{width:36px}
  .word-game.focus-view .wordmark{font-size:20px}
  .focus-view .word-mobile-actions a,.focus-view .word-mobile-actions button,.sudoku-focus-actions a,.sudoku-focus-actions button{width:36px}
  .sudoku-game.focus-view .wordmark{font-size:23px}
}
@media print{.focus-toggle,.word-mobile-actions,.sudoku-focus-actions,.word-dialog{display:none!important}}

/* Keep the initial geometry stable while server data and saved progress load. */
.puzzle-top time{display:block;min-height:14px}
/* Only puzzle contents wait for data; the page and empty grid stay visible. */
.puzzle-loading .screen-value,.puzzle-loading .pencil{visibility:hidden}
.puzzle-loading .word-cell{color:transparent}
.puzzle-loading #progress,.puzzle-loading #word-progress{visibility:hidden}
.puzzle-loading #keypad button:disabled,.puzzle-loading .cell:disabled{opacity:1}
.word-card[aria-busy=true] .word-key{opacity:1}

/* Messages and restored results share a stable area above the keyboard. */
.word-notices{height:140px;display:flex;flex-direction:column;justify-content:center}
.word-notices .word-status{flex:none;min-height:54px;padding:10px 0}
.word-notices .word-result{flex:none;margin:0;padding:12px 14px}
.word-notices .word-result h3{font-size:18px;line-height:22px;margin:0 0 6px}
.word-notices .word-result p{font-size:11px;line-height:18px;margin:0 0 6px}
.word-notices .word-result a{font-size:11px;line-height:14px}
@media screen{.word-game.focus-view .word-notices{display:contents}}

.word-notices:has(#word-result:not([hidden])) .word-status{display:none}

/* Het kruiswoordje */
.crossword-game .wordmark{font-size:27px}
.crossword-game .brand-tagline{font-size:10px}
.direction-toggle{border:0;background:transparent;color:var(--green);font-size:11px;padding:0;min-height:20px}
.crossword-current{display:flex;align-items:center;gap:8px;background:var(--soft);border-radius:7px;height:76px;padding:6px;margin-bottom:18px}
.crossword-current button{flex:none;width:30px;height:44px;background:transparent;border:0;font-size:26px;color:var(--green);border-radius:5px}
#crossword-clue{flex:1;font-size:12px;line-height:18px;text-align:center}
.crossword-board-space{display:grid;place-items:center}
.crossword-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));width:min(100%,320px);aspect-ratio:1;background:var(--ink);border:2px solid var(--ink);gap:1px;border-radius:3px;overflow:hidden;outline-offset:5px}
.crossword-board:focus-visible{outline:2px solid var(--gold)}
.crossword-cell{border:0;background:#fff;padding:0;min-width:0;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;font-size:27px;font-weight:500;color:var(--green);touch-action:manipulation}
.crossword-cell.block{background:var(--ink)}
.crossword-cell.in-word{background:var(--soft)}
.crossword-cell.selected{background:#dce8d3;box-shadow:inset 0 0 0 2px var(--green)}
.crossword-cell.incorrect{color:#b24839;background:#faeae5}
.crossword-number{position:absolute;top:3px;left:4px;font:10px/1 Arial,sans-serif;color:var(--ink)}
.crossword-letter{padding-top:5px}
.crossword-cell:disabled{opacity:1}
.crossword-message{height:76px;display:flex;flex-direction:column;justify-content:center;gap:4px;text-align:center;font-size:11px;line-height:17px;color:var(--muted)}
.crossword-message p{margin:0}
.crossword-message a{color:var(--green);font-size:11px}
.crossword-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0 0 14px}
.crossword-tools button{height:38px;border-radius:6px;font-size:11px}
.crossword-clues{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.crossword-clues h3{font-size:13px;margin:0 0 9px}
.crossword-clues ol{list-style:none;padding:0;margin:0 0 18px}
.crossword-clues li{margin:0 0 3px}
.crossword-clues button{display:block;width:100%;text-align:left;border:0;border-radius:5px;background:transparent;padding:7px 8px;font-size:12px;line-height:18px;color:var(--muted)}
.crossword-clues button:hover,.crossword-clues button.active{background:var(--soft);color:var(--green)}
.crossword-game .advertisement{margin-top:22px}
.puzzle-loading .crossword-letter{visibility:hidden}
@media(max-width:660px){.crossword-game .wordmark{font-size:25px}.crossword-game .intro h1{font-size:33px}.crossword-tools button{height:44px}.crossword-cell{font-size:26px}.crossword-current{margin-bottom:14px}}
@media(max-width:360px){.crossword-game .wordmark{font-size:22px}.crossword-game .intro h1{font-size:29px}.crossword-current{height:84px}#crossword-clue{font-size:11px}}
@media screen{
  .crossword-game.focus-view .wordmark{font-size:23px}
  .crossword-game.focus-view .crossword-card{grid-template-rows:auto auto 62px minmax(0,1fr) 52px 44px auto;gap:0;padding-top:7px}
  .crossword-game.focus-view .crossword-current{grid-row:3;min-height:0;height:58px;margin:0 5px 4px}
  .crossword-game.focus-view .crossword-board-space{grid-row:4;min-height:0;container-type:size;padding:0;display:grid;place-items:center}
  .crossword-game.focus-view .crossword-board{width:min(320px,100cqw,100cqh)}
  .crossword-game.focus-view .crossword-message{grid-row:5;height:52px;padding:3px 8px;font-size:11px;line-height:15px}
  .crossword-game.focus-view .crossword-tools{grid-row:6;margin:0 5px 5px;gap:6px}
  .crossword-game.focus-view .crossword-tools button{height:38px;font-size:11px}
  .crossword-game.focus-view #crossword-keyboard{grid-row:7}
  .crossword-game.focus-view .game-meta{margin:3px 5px 5px;justify-content:space-between;align-items:center}
  .crossword-game.focus-view .direction-toggle{font-size:10px;min-height:20px}
  .crossword-game.focus-view .crossword-number{font-size:9px;top:2px;left:3px}
  .crossword-game.focus-view .crossword-cell{font-size:clamp(16px,4dvh,28px)}
}
@media screen and (max-width:360px){.crossword-game.focus-view .wordmark{font-size:20px}.crossword-game.focus-view .crossword-card{grid-template-rows:auto auto 62px minmax(0,1fr) 44px 40px auto}.crossword-game.focus-view .crossword-message{height:44px}.crossword-game.focus-view .crossword-tools button{height:35px}}
@media screen and (max-height:500px) and (min-width:600px) and (pointer:coarse){
  .crossword-game.focus-view .crossword-card{column-gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);grid-template-rows:auto auto 58px minmax(0,1fr) 40px}
  .crossword-game.focus-view .puzzle-top,.crossword-game.focus-view .game-meta{grid-column:1 / -1}
  .crossword-game.focus-view .crossword-current{grid-column:2;grid-row:3;height:54px}
  .crossword-game.focus-view .crossword-board-space{grid-column:1;grid-row:3 / 6}
  .crossword-game.focus-view .crossword-message{grid-column:2;grid-row:5;height:40px}
  .crossword-game.focus-view .crossword-tools{display:none}
  .crossword-game.focus-view #crossword-keyboard{grid-column:2;grid-row:4}
  .crossword-game.focus-view .word-key{height:44px}
}
@media print{.crossword-game .puzzle-card:after,.crossword-current,.crossword-tools,.crossword-message,.crossword-game .word-keyboard{display:none}.crossword-board{width:100mm}.crossword-cell{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
@media screen{
  .crossword-game.focus-view .crossword-card{grid-template-columns:minmax(0,1fr)}
  .crossword-game.focus-view .crossword-current,.crossword-game.focus-view .crossword-board-space,.crossword-game.focus-view .crossword-message,.crossword-game.focus-view .crossword-tools,.crossword-game.focus-view #crossword-keyboard{grid-column:1}
}
@media screen and (max-height:560px) and (max-width:599px){
  .crossword-game.focus-view .crossword-card{grid-template-rows:18px 52px minmax(0,1fr) 32px auto;padding-top:4px}
  .crossword-game.focus-view .game-meta,.crossword-game.focus-view .crossword-tools{display:none}
  .crossword-game.focus-view .crossword-current{grid-row:2;height:48px}
  .crossword-game.focus-view .crossword-board-space{grid-row:3}
  .crossword-game.focus-view .crossword-message{grid-row:4;height:32px;font-size:10px;line-height:13px}
  .crossword-game.focus-view #crossword-keyboard{grid-row:5;gap:5px}
  .crossword-game.focus-view .word-key{height:44px}
}
@media screen and (max-height:500px) and (min-width:600px) and (pointer:coarse){
  .crossword-game.focus-view .crossword-card{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
  .crossword-game.focus-view .crossword-current{grid-column:2;grid-row:3}
  .crossword-game.focus-view .crossword-board-space{grid-column:1;grid-row:3 / 6}
  .crossword-game.focus-view .crossword-message{grid-column:2;grid-row:5}
  .crossword-game.focus-view #crossword-keyboard{grid-column:2;grid-row:4}
}
