@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-vietnamese-700-normal-VsvP8OcS.woff2) format("woff2"),url(/assets/archivo-narrow-vietnamese-700-normal-CB0yIOvF.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-latin-ext-700-normal-DCLoHMFv.woff2) format("woff2"),url(/assets/archivo-narrow-latin-ext-700-normal-C4q0W15T.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-latin-700-normal-DtADLsoy.woff2) format("woff2"),url(/assets/archivo-narrow-latin-700-normal-DxmyBkwC.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #14161c;--ink: #f3efe4;--muted: #9b9688;--grid: #1e222b;--block: #090a0d;--line: #3a404c;--word: #2f5c56;--cell: #3f7a72;--accent: #d4a054;--card: #1a1d24;--focus: #ead7a8;font-family:Atkinson Hyperlegible,ui-sans-serif,system-ui,sans-serif;background:var(--paper);color:var(--ink);line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(1200px 600px at 10% -10%,#1c2430 0%,var(--paper) 55%)}::selection{background:#d4a05455;color:var(--ink)}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--paper)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}html{scrollbar-color:#3a404c #14161c}.crossword{min-height:100dvh;padding:1rem 1.25rem 2.5rem;display:flex;flex-direction:column}.crossword-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.65rem 1.25rem}.crossword-head h1{margin:0;font-size:1.35rem}.crossword-head p{margin:.2rem 0 0;color:var(--muted)}.crossword-tools{display:flex;flex-wrap:wrap;gap:.35rem}.crossword-tools button{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.28rem .72rem;font-size:.8rem;cursor:pointer}.crossword-tools button:hover:not(:disabled){border-color:var(--accent);color:var(--focus)}.crossword-tools button:disabled{opacity:.45;cursor:default}.new-puzzle{position:relative}.crossword-tools .new-puzzle>button.on{border-color:var(--accent);color:var(--focus)}.new-puzzle-form{position:absolute;right:0;top:calc(100% + .45rem);z-index:6;width:min(22rem,calc(100vw - 2rem));display:grid;gap:.75rem;padding:.85rem .9rem;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px #0008}.new-puzzle-topic{display:grid;gap:.3rem}.new-puzzle-topic span,.new-puzzle-form legend{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.new-puzzle-form fieldset{border:0;margin:0;padding:0;display:grid;gap:.35rem}.new-puzzle-topic input{width:100%;background:var(--grid);border:1px solid var(--line);border-radius:8px;padding:.45rem .6rem}.new-puzzle-topic input::placeholder{color:#6f6a5e}.new-puzzle-seg{display:flex;flex-wrap:wrap;gap:.3rem}.new-puzzle-seg label{cursor:pointer}.new-puzzle-seg input{position:absolute;opacity:0;pointer-events:none}.new-puzzle-seg span{display:block;background:var(--grid);border:1px solid var(--line);border-radius:999px;padding:.22rem .65rem;font-size:.8rem}.new-puzzle-seg input:checked+span{border-color:var(--accent);color:var(--focus);background:#d4a05422}.new-puzzle-seg input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.new-puzzle-actions{display:grid;gap:.35rem}.new-puzzle-form button[type=submit]{background:var(--accent);color:#1a1408;border:0;border-radius:999px;padding:.4rem .85rem;font-weight:700;cursor:pointer}.new-puzzle-form button[type=submit]:disabled{opacity:.45;cursor:default}.new-puzzle-status{margin:0;min-height:1.2em;font-size:.85rem;color:var(--muted)}.new-puzzle-status.err{color:#e3b4b0}.clue-bar{grid-area:bar;margin:.85rem 0 0;background:#d4a054;color:#1a1408;border-radius:10px;padding:.7rem .9rem;display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:.55rem .75rem;position:sticky;top:.4rem;z-index:3}.clue-num{font-weight:700;text-transform:uppercase;font-size:.8rem;letter-spacing:.04em;flex-shrink:0}.clue-text{font-size:1.05rem;flex:1 1 auto}.clue-bar.solved .clue-text{flex:0 1 auto}.clue-hint-btn{margin-left:auto;background:#1a1408;color:#ead7a8;border:0;border-radius:999px;padding:.2rem .7rem;font-size:.8rem;font-weight:700;cursor:pointer;flex-shrink:0}.clue-hint{flex:1 1 8rem;font-size:.95rem;color:#3b2410}.clue-hint:before{content:"·";margin-right:.55rem}.clue-answer{margin:0;flex-shrink:0}.clue-answer,.word-note-answer{font-weight:700;letter-spacing:.12em;font-family:Archivo Narrow,Atkinson Hyperlegible,sans-serif}.word-note-answer{margin:0 0 .2rem}.word-learn p{margin:0}.word-learn-links{display:flex;gap:.85rem;flex-shrink:0;font-size:.85rem}.clue-bar .word-learn{display:flex;flex:1 1 12rem;align-items:baseline;gap:.75rem;min-width:0}.clue-bar .word-learn-explainer{flex:1 1 auto;min-width:8rem}.clue-bar .word-learn-links a{color:#3b2410;text-underline-offset:3px}.word-note .word-learn{display:flex;flex-direction:column;gap:.35rem}.crossword-body{display:grid;grid-template-columns:max-content minmax(16rem,1fr);grid-template-areas:"bar bar" "grid clues";column-gap:1.5rem;row-gap:.85rem;align-items:start}.grid-wrap{grid-area:grid;position:relative;aspect-ratio:1;max-width:100%;container-type:size}.grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));grid-template-rows:repeat(var(--cols),minmax(0,1fr));width:100%;height:100%;border:2px solid var(--ink);background:var(--line);gap:1px}.cell{background:var(--grid);border:0;position:relative;padding:0;cursor:pointer;color:var(--ink);display:grid;place-items:center}.cell:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;z-index:1}.cell.block{background:var(--block);cursor:default}.cell.word{background:var(--word)}.cell.active{background:var(--cell)}.cell.wrong{background:#5a2e32}.cell.wrong.word{background:#6a383c}.cell.wrong.active{background:#7a4044}.cell.revealed .letter{color:var(--accent)}.num{position:absolute;top:1px;left:2px;font-size:clamp(.4rem,3.2cqw,.58rem);color:var(--muted)}.letter{font-family:Archivo Narrow,Atkinson Hyperlegible,sans-serif;font-weight:700;font-size:clamp(.65rem,6.2cqw,1.35rem);line-height:1}.resize-handle{position:absolute;right:0;bottom:0;width:1.15rem;height:1.15rem;padding:0;border:0;background:transparent;cursor:nwse-resize;touch-action:none;z-index:2}.resize-handle:focus{outline:none}.resize-handle:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.resize-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:.55rem;height:.55rem;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent)}.ghost-input{position:absolute;left:0;bottom:0;width:1px;height:1px;opacity:0;font-size:16px}.clue-lists{grid-area:clues;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.clue-lists h2{margin:0 0 .4rem;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.clue-lists ol{list-style:none;margin:0;padding:0}.clue-lists button{width:100%;text-align:left;background:none;border:0;padding:.28rem .2rem;cursor:pointer;border-radius:6px}.clue-lists button.on,.clue-lists button:hover{background:#d4a05422}.clue-lists strong{color:var(--accent);margin-right:.35rem}.clue-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.15rem;align-items:start}.clue-row.solved>button{color:var(--muted)}.word-note-wrap{position:relative}.clue-about{width:auto;font-size:.75rem;color:var(--accent);padding:.28rem .4rem}.word-note{position:absolute;right:0;top:calc(100% + .2rem);z-index:5;width:min(22rem,80vw);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;box-shadow:0 10px 28px #0008}.word-note .word-learn-links a{color:var(--focus);text-underline-offset:3px}@media(max-width:800px){.new-puzzle{flex:1 1 100%}.new-puzzle-form{position:static;width:100%;margin-top:.4rem;box-shadow:none}.crossword{padding:.75rem .85rem 1.5rem}.crossword-body{display:flex;flex-direction:column;gap:.85rem}.grid-wrap{order:1}.clue-bar{order:2}.clue-lists{order:3}.clue-bar{top:auto;bottom:0;position:sticky;margin:0}.clue-lists{grid-template-columns:1fr}}
