:root{--folder:#2c4a68;--folder-deep:#213a52;--on-folder:#f2f6fa;--on-folder-muted:#b7c8d9;--paper:#fdfdfb;--rule:#d5e1ec;--ink:#1d2833;--ink-soft:#56636f;--stamp:#5b37ad;--stamp-blend:multiply;--marker:#ffd60a;--marker-opacity:.85;--stamp-on-marker:#4a2a9c;--hover:#1d28330d;--shadow:0 1px 0 #0000001f, 0 18px 40px -18px #0000008c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--folder:#131f2c;--folder-deep:#0c151f;--on-folder:#e8eef4;--on-folder-muted:#8ea2b6;--paper:#1b2735;--rule:#253446;--ink:#e3eaf1;--ink-soft:#9badbe;--stamp:#b9a3ff;--stamp-blend:normal;--marker-opacity:.95;--hover:#ffffff0d;--shadow:0 1px 0 #0006, 0 18px 40px -18px #000000d9;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--folder:#131f2c;--folder-deep:#0c151f;--on-folder:#e8eef4;--on-folder-muted:#8ea2b6;--paper:#1b2735;--rule:#253446;--ink:#e3eaf1;--ink-soft:#9badbe;--stamp:#b9a3ff;--stamp-blend:normal;--marker-opacity:.95;--hover:#ffffff0d;--shadow:0 1px 0 #0006, 0 18px 40px -18px #000000d9;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}body{background:var(--folder);min-height:100dvh;color:var(--on-folder);-webkit-text-size-adjust:100%;margin:0;font-family:Archivo,system-ui,sans-serif;font-size:1rem;line-height:1.45}button{font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--marker);outline-offset:2px}.wrap{width:100%;max-width:36rem;margin-inline:auto;padding:12px 16px 48px}.topbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.langs{background:var(--folder-deep);border-radius:10px;gap:2px;padding:3px;display:flex}.lang{min-width:40px;min-height:38px;color:var(--on-folder-muted);letter-spacing:.04em;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0 6px;font-size:.8rem;font-weight:700}.lang:hover{color:var(--on-folder)}.lang[aria-pressed=true]{background:var(--paper);color:var(--ink)}.theme{background:var(--folder-deep);width:44px;height:44px;color:var(--on-folder);cursor:pointer;border:0;border-radius:10px;place-items:center;display:grid}.head{margin:36px 0 24px}.back{color:var(--on-folder-muted);align-items:center;gap:4px;margin:0 0 8px -4px;padding:8px 4px;font-weight:600;text-decoration:none;display:inline-flex}.back:hover{color:var(--on-folder)}.title{letter-spacing:-.015em;-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;text-wrap:balance;margin:0;font-size:clamp(2.1rem,10vw,4.5rem);font-weight:900;font-stretch:125%;line-height:.95}.sub{max-width:42ch;color:var(--on-folder-muted);text-wrap:pretty;margin:12px 0 0}.sheet{background-color:var(--paper);background-image:linear-gradient(var(--rule) 1px, transparent 1px), linear-gradient(90deg, var(--rule) 1px, transparent 1px);color:var(--ink);box-shadow:var(--shadow);background-size:18px 18px;border-radius:4px;padding:18px 12px 20px}@media (width>=480px){.sheet{padding:28px}}.sheet :focus-visible{outline-color:var(--stamp)}.topics{margin:0;padding:0;list-style:none}.topics li+li{border-top:2px solid var(--ink)}.topic{color:var(--ink);border-radius:4px;flex-direction:column;gap:2px;padding:18px 8px;text-decoration:none;display:flex}.topic:hover{background:var(--hover)}.topic-name{font-size:clamp(1.4rem,6vw,1.9rem);font-weight:800;font-stretch:115%;line-height:1.1}.topic-status{color:var(--stamp);font-size:.88rem;font-weight:600}.meta{color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:.85rem;font-weight:600;display:flex}.card-no{color:var(--ink)}.rules{text-wrap:pretty;max-width:52ch;margin:8px 0 16px;font-size:.95rem}.board{aspect-ratio:1;width:100%;position:relative}.grid{z-index:1;border-top:2px solid var(--ink);border-left:2px solid var(--ink);grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));width:100%;height:100%;display:grid;position:relative}.cell{border:0;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);min-width:0;min-height:0;color:var(--ink);text-align:center;-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:4px;font-size:clamp(.72rem,3.2vw,1rem);font-weight:560;font-stretch:70%;line-height:1.12;display:flex;position:relative;overflow:hidden}.cell:hover{background:var(--hover)}.cell:focus-visible{outline-offset:-5px}.phrase{transition:opacity .2s}.is-checked .phrase{opacity:.3}.stamp{translate:-50% -50%;rotate:var(--tilt,-4deg);color:var(--stamp);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;mix-blend-mode:var(--stamp-blend);border:2px solid;border-radius:4px;padding:2px 5px;font-size:clamp(.58rem,2.5vw,.8rem);font-weight:800;font-stretch:100%;line-height:1.2;position:absolute;top:50%;left:50%}.is-checked .stamp{opacity:.9}.in-line .stamp{color:var(--stamp-on-marker);mix-blend-mode:normal}.just-checked .stamp{animation:.26s cubic-bezier(.3,1.5,.5,1) stamp-in}@keyframes stamp-in{0%{opacity:0;scale:1.6}}.markers{z-index:0;pointer-events:none;position:absolute;inset:0}.marker{height:12%;translate:-50% -50%;rotate:var(--angle);position:absolute}.marker>span{background:var(--marker);height:100%;opacity:var(--marker-opacity);transform-origin:0;border-radius:5px 12px 6px 14px/12px 5px 14px 6px;display:block}.marker.is-new>span{animation:.48s cubic-bezier(.25,.8,.25,1) both swipe}@keyframes swipe{0%{transform:scaleX(0)}}.bingo{margin:18px 0 0;font-size:1.25rem;font-weight:800;font-stretch:110%;line-height:1.35}.bingo:empty{margin:0}.bingo mark{color:#1d2833;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:#ffd60a;padding:0 4px}.foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.progress{color:var(--ink-soft);font-size:.9rem;font-weight:600}.clear{border:2px solid var(--ink);background:var(--paper);min-height:42px;color:var(--ink);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:.9rem;font-weight:600}.clear:hover{background:var(--hover)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
