@font-face{font-family:Libre Bodoni;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/libre-bodoni-vietnamese-700-normal-BmItXoXA.woff2)format("woff2"),url(/assets/libre-bodoni-vietnamese-700-normal-DVTdJWF1.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Libre Bodoni;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/libre-bodoni-latin-ext-700-normal-7XSaQW_e.woff2)format("woff2"),url(/assets/libre-bodoni-latin-ext-700-normal-BNPxeLJ8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Bodoni;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/libre-bodoni-latin-700-normal-cWP86_CO.woff2)format("woff2"),url(/assets/libre-bodoni-latin-700-normal-DgVklTud.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f6f5f1;--ink:#20242b;--grid-line:#20242b;--cell:#fff;--muted:#6a6f78;--accent:#2b7cc4;--error:#b3362b;--correct:#2f7d4f;--cell-size:2.5rem;--azzurro:#2b7cc4;--rojo:#c43b2b}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#15181d;--ink:#e8e6e0;--grid-line:#e8e6e0;--cell:#1e2229;--muted:#9aa0aa;--accent:#5ca8e8;--error:#e86a5e;--correct:#6fbf8b;--azzurro:#5ca8e8;--rojo:#e8705f}:root[data-lang=es]{--accent:#c43b2b}:root[data-theme=dark][data-lang=es]{--accent:#e8705f}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:IBM Plex Sans,system-ui,sans-serif}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-header{border-bottom:2px solid var(--grid-line);justify-content:space-between;align-items:center;padding:.75rem 1.25rem;display:flex}.brand{letter-spacing:.04em;margin:0;font-family:Libre Bodoni,serif;font-size:1.5rem}.brand-cross{color:var(--ink)}.brand-language{color:var(--accent)}.brand-button{font:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0}.theme-toggle{border:1px solid var(--muted);color:var(--ink);cursor:pointer;background:0 0;border-radius:.375rem;padding:.25rem .6rem;font-size:1rem}.puzzle-screen{max-width:60rem;margin:0 auto;padding:1rem 1.25rem 3rem}.puzzle-header{align-items:baseline;gap:.75rem;display:flex}.puzzle-header h1{text-transform:capitalize;font-family:Libre Bodoni,serif}.puzzle-meta{color:var(--muted)}.solved-banner{color:var(--accent);margin:0;font-family:Libre Bodoni,serif;font-size:1.25rem;font-weight:700}.puzzle-body{flex-wrap:wrap;align-items:flex-start;gap:2rem;display:flex}.crossword{position:relative}.grid{border:2px solid var(--grid-line);width:max-content;display:grid}.grid-row{display:contents}.cell{border:1px solid var(--grid-line);background:var(--cell);cursor:pointer;justify-content:center;align-items:center;display:flex;position:relative}.cell.focused{outline:3px solid var(--accent);outline-offset:-3px;z-index:1}.cell.solved{background:color-mix(in srgb, var(--accent) 14%, var(--cell))}.cell.wrong{background:color-mix(in srgb, var(--error) 18%, var(--cell))}.cell.correct{background:color-mix(in srgb, var(--correct) 18%, var(--cell))}.cell.prefilled{color:var(--muted)}.cell-num{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.55rem;position:absolute;top:1px;left:3px}.cell-clue{text-transform:lowercase;color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-family:IBM Plex Sans,sans-serif;font-size:.4rem;line-height:1.1;display:-webkit-box;position:absolute;top:1px;left:2px;right:2px;overflow:hidden}.cell-clue+.cell-clue{top:.85rem}.cell-clue-dir{margin-left:.15em}.cell-letter{font-family:IBM Plex Mono,monospace;font-size:1.25rem;font-weight:500}@media (prefers-reduced-motion:no-preference){.cell-letter{transition:transform .12s}.cell.solved .cell-letter{transform:scale(1.06)}}.grid-input{opacity:0;border:0;width:1px;height:1px;padding:0;position:absolute;top:0;left:0}.accent-bar{gap:.5rem;margin-top:.75rem;display:flex}.accent-bar button{background:var(--cell);min-width:2.25rem;color:var(--ink);border:1px solid var(--grid-line);cursor:pointer;border-radius:.375rem;padding:.35rem 0;font-family:IBM Plex Mono,monospace;font-size:1.1rem}.accent-bar button:hover{border-color:var(--accent)}.grid-toolbar{gap:.5rem;margin-top:.75rem;display:flex}.hint-button,.check-button{background:var(--cell);color:var(--ink);border:1px solid var(--grid-line);cursor:pointer;border-radius:.375rem;padding:.35rem .75rem;font-family:IBM Plex Sans,sans-serif;font-size:.85rem}.hint-button:hover:not(:disabled),.check-button:hover:not(:disabled){border-color:var(--accent)}.hint-button:disabled,.check-button:disabled{cursor:not-allowed;opacity:.5}.word-bank{flex-wrap:wrap;gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.word-bank-word{color:var(--ink);background:var(--cell);border:1px solid var(--grid-line);text-transform:lowercase;border-radius:.375rem;padding:.2rem .6rem;font-family:IBM Plex Mono,monospace;font-size:.85rem}.word-bank-word.placed{color:var(--muted);border-color:var(--muted);text-decoration:line-through}.clue-toggle{border:1px solid var(--muted);color:var(--ink);cursor:pointer;background:0 0;border-radius:.375rem;padding:.2rem .6rem;font-family:IBM Plex Mono,monospace;font-size:.85rem}.clue-toggle[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.solved-banner a{color:var(--accent);margin-left:.75rem;font-family:IBM Plex Sans,sans-serif;font-size:.95rem;font-weight:500}.clues{flex:16rem;min-width:14rem}.clues h2{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.85rem}.clues ol{margin:0 0 1.5rem;padding:0;list-style:none}.clues li+li{margin-top:.25rem}.clues button{color:var(--ink);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:.25rem;padding:.15rem .25rem}.clues button:hover{color:var(--accent)}.clue-num{color:var(--muted);margin-right:.35rem;font-family:IBM Plex Mono,monospace}.clue-len{color:var(--muted)}.clue-audio{align-items:center;gap:.15rem;display:flex}.clue-play{cursor:pointer;background:0 0;border:none;border-radius:.25rem;padding:.15rem .25rem;font-size:1rem;line-height:1}.clue-play:hover{background:var(--cell)}.audio-unavailable{color:var(--error);flex-basis:100%;margin:.15rem 0 0;font-size:.8rem}.home-screen{max-width:40rem;margin:0 auto;padding:3rem 1.25rem}.lang-cards{flex-wrap:wrap;gap:1.5rem;display:flex}.lang-card{background:var(--cell);border:2px solid var(--grid-line);cursor:pointer;border-radius:.5rem;flex:14rem;min-height:8rem;font-family:Libre Bodoni,serif;font-size:1.75rem;transition:transform .12s}.lang-card:hover{transform:translateY(-2px)}.lang-card-it{color:var(--azzurro);border-color:var(--azzurro)}.lang-card-es{color:var(--rojo);border-color:var(--rojo)}.level-screen,.puzzle-list{max-width:40rem;margin:0 auto;padding:1.5rem 1.25rem 3rem}.level-screen h2{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-family:Libre Bodoni,serif;font-size:1rem;font-weight:500}.level-list,.puzzle-list ul{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.level-button,.puzzle-row{background:var(--cell);border:1px solid var(--grid-line);cursor:pointer;text-align:left;width:100%;color:var(--ink);font:inherit;border-radius:.5rem;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.75rem 1rem;display:flex}.level-button:hover:not(:disabled),.puzzle-row:hover{border-color:var(--accent)}.level-button:disabled{cursor:not-allowed;opacity:.5}.category-card{border-width:2px;border-color:var(--accent);margin-bottom:1rem}.level-name{font-family:Libre Bodoni,serif;font-weight:700}.level-rule,.puzzle-row-words{color:var(--muted);font-size:.9rem}.puzzle-row-theme{text-transform:capitalize;font-weight:500}.puzzle-row-check{color:var(--accent);font-weight:700}.dictation-screen{max-width:40rem;margin:0 auto;padding:1.5rem 1.25rem 3rem}.dictation-screen h2{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-family:Libre Bodoni,serif;font-size:1rem;font-weight:500}.dictation-unavailable{color:var(--muted);max-width:28rem}.dictation-play{background:var(--cell);color:var(--accent);border:2px solid var(--accent);cursor:pointer;border-radius:.75rem;margin:.5rem 0 1.25rem;padding:1rem 1.5rem;font-family:IBM Plex Sans,sans-serif;font-size:1.5rem;display:block}.dictation-play:hover{background:color-mix(in srgb, var(--accent) 10%, var(--cell))}.dictation-form{flex-direction:column;align-items:flex-start;gap:.6rem;max-width:20rem;display:flex}.dictation-input{background:var(--cell);width:100%;color:var(--ink);border:1px solid var(--grid-line);border-radius:.375rem;padding:.5rem .75rem;font-family:IBM Plex Mono,monospace;font-size:1.1rem}.dictation-check,.dictation-again,.dictation-next{background:var(--cell);color:var(--ink);border:1px solid var(--grid-line);cursor:pointer;border-radius:.375rem;padding:.4rem .9rem;font-family:IBM Plex Sans,sans-serif;font-size:.9rem}.dictation-check:hover:not(:disabled),.dictation-again:hover,.dictation-next:hover{border-color:var(--accent)}.dictation-check:disabled{cursor:not-allowed;opacity:.5}.dictation-feedback{border-radius:.5rem;max-width:20rem;margin-top:1.25rem;padding:.75rem 1rem}.dictation-feedback.correct{background:color-mix(in srgb, var(--correct) 18%, var(--cell));border:1px solid var(--correct)}.dictation-feedback.wrong{background:color-mix(in srgb, var(--error) 18%, var(--cell));border:1px solid var(--error)}.dictation-reveal{margin:.25rem 0;font-family:Libre Bodoni,serif;font-style:italic}.dictation-summary{margin:1rem 0;font-family:Libre Bodoni,serif;font-size:1.25rem}.streak-line{color:var(--muted);margin:0 0 1rem;font-size:.9rem}.data-actions{border-top:1px solid var(--grid-line);flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.export-button{background:var(--cell);border:1px solid var(--grid-line);cursor:pointer;color:var(--ink);font:inherit;border-radius:.5rem;padding:.5rem 1rem}.export-button:hover{border-color:var(--accent)}.import-label{background:var(--cell);border:1px solid var(--grid-line);cursor:pointer;color:var(--ink);font:inherit;border-radius:.5rem;padding:.5rem 1rem;position:relative}.import-label:hover{border-color:var(--accent)}.import-label input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.import-error{color:var(--error);flex-basis:100%;margin:0;font-size:.85rem}.import-success{color:var(--correct);flex-basis:100%;margin:0;font-size:.85rem}.app-footer{max-width:60rem;color:var(--muted);margin:0 auto;padding:1rem 1.25rem 2rem;font-size:.8rem}.app-footer a{color:var(--muted)}.app-footer a:hover{color:var(--accent)}
