:root{--ink:#1a1a1a;--muted:#5c574f;--bg:#f7f4ee;--paper:#fffdf8;--line:#1a1a1a;--free:#e8dcc8;--highlight:#efe3a8;--highlight-free:#dcc89a;--button:#1a1a1a;--button-text:#fffdf8;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--serif:Georgia, "Times New Roman", serif;color:var(--ink);background:var(--bg);font:18px/1.45 var(--sans)}*,:before,:after{box-sizing:border-box}body{margin:0}.page{width:min(960px,100%);margin:0 auto;padding:32px 20px 64px}.intro{text-align:center;margin-bottom:28px}.site{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:12px}h1{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 12px;font-size:clamp(36px,6vw,52px);font-weight:700}.lede{max-width:42rem;color:var(--muted);margin:0 auto 24px}.actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}button{font:inherit;border:2px solid var(--button);background:var(--button);color:var(--button-text);cursor:pointer;border-radius:4px;padding:10px 16px;font-size:16px}button:hover:not(:disabled){background:#333}button:disabled{cursor:not-allowed;opacity:.45}#download{color:var(--ink);background:0 0}#download:hover:not(:disabled){background:var(--ink);color:var(--button-text)}.card-mount{background:var(--paper);border:2px solid var(--line);padding:16px}.error{text-align:center;color:#8b1e1e;margin:0}.bingo{border-collapse:collapse;table-layout:fixed;width:100%}.bingo caption{font-family:var(--serif);margin-bottom:10px;font-size:22px;font-weight:700}.bingo th,.bingo td{border:1px solid var(--line);text-align:center;vertical-align:middle}.bingo th{background:var(--ink);color:var(--paper);padding:8px 6px}.bingo .letter{letter-spacing:.08em;font-size:22px;line-height:1.1;display:block}.bingo .subtitle{letter-spacing:0;margin-top:4px;font-size:11px;font-weight:500;line-height:1.2;display:block}.bingo td{height:108px;padding:0;font-size:14px;line-height:1.3}.bingo .cell-button{all:unset;box-sizing:border-box;cursor:pointer;text-align:center;overflow-wrap:anywhere;justify-content:center;align-items:center;width:100%;height:100%;min-height:108px;padding:8px;display:flex}.bingo .cell-button:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}.bingo td:hover{background:#f3eee0}.bingo td.selected{background:var(--highlight)}.bingo td.free{background:var(--free);font-family:var(--serif);letter-spacing:.06em;font-size:18px;font-weight:700}.bingo td.free:hover{background:#e0d2b8}.bingo td.free.selected{background:var(--highlight-free)}.cell-detail{background:var(--paper);border:2px solid var(--line);margin-top:16px;padding:20px 24px}.cell-detail h2{font-family:var(--serif);margin:0 0 10px;font-size:22px;font-weight:700}.cell-detail p{color:var(--muted);margin:0}.colophon{text-align:center;margin-top:40px}.colophon .maple-leaf{width:44px;height:48px;margin:0 auto 12px;display:block}.colophon p{color:var(--muted);margin:0;font-size:15px}@media (width<=700px){.bingo td{height:84px;font-size:12px}.bingo .cell-button{min-height:84px;padding:6px 4px}.bingo th{padding:6px 3px}.bingo .letter{font-size:18px}.bingo .subtitle{font-size:9px}}@media print{body{background:#fff}.page{width:auto;padding:0}.lede,.actions,.cell-detail,.colophon{display:none}.card-mount{border:0;padding:0}.bingo{page-break-inside:avoid}.bingo td{height:1.4in}.bingo .cell-button{cursor:default;min-height:1.4in}.bingo td:hover,.bingo td.selected{background:0 0}.bingo td.free,.bingo td.free:hover,.bingo td.free.selected{background:var(--free)}}
