*{box-sizing:border-box}html{overflow-x:hidden}body{margin:0;background:#faf7f0;color:#251f3e;font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #f6a970;outline-offset:2px}.shell{max-width:1170px;margin:auto;padding:clamp(17px,4vw,44px) clamp(13px,3vw,32px) 70px}.eyebrow{font-size:.74rem;letter-spacing:.15em;font-weight:900;color:#7257a8}h1{font-size:clamp(3.1rem,8vw,6rem);line-height:1.02;letter-spacing:-.075em;margin:8px 0}h1 em{font-family:Georgia,serif;color:#e87b8e;font-weight:400}header p{font-size:1.12rem;color:#756e81;margin:8px 0 24px}.layout{display:grid;grid-template-columns:minmax(0,720px) minmax(240px,1fr);gap:20px;align-items:start}.play{background:#2d2450;border-radius:23px;color:#fff;padding:clamp(12px,2.8vw,22px);min-width:0;box-shadow:0 18px 35px #22193833}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:13px}.stats div{background:#493a6d;border:1px solid #7861a2;border-radius:11px;padding:7px 9px}.stats small{display:block;font-size:.61rem;color:#e2d3f4;font-weight:900;letter-spacing:.04em}.stats strong{font-size:1.2rem}.puzzle-shell{position:relative;background:#544373;border:3px solid #ad8bc5;border-radius:18px;padding:12px;max-width:640px;margin:auto}.board-top{display:flex;justify-content:space-between;color:#f5ddcf;font-size:.72rem;font-weight:900;letter-spacing:.07em;padding:1px 4px 11px}.grid-wrap{display:flex;justify-content:center;overflow:auto}.puzzle{--n:5;--cell:44px;display:grid;grid-template-columns:76px repeat(var(--n),var(--cell));grid-template-rows:76px repeat(var(--n),var(--cell));gap:2px;max-width:100%;touch-action:manipulation}.corner{background:#40335f;border-radius:7px}.row-clue,.col-clue{display:flex;align-items:center;justify-content:flex-end;gap:3px;color:#f7e8d2;background:#40335f;border-radius:6px;padding:3px 7px;font-size:clamp(.61rem,1.2vw,.78rem);font-weight:900}.col-clue{flex-direction:column;justify-content:flex-end;padding:5px 2px}.row-clue.solved,.col-clue.solved{color:#b5eea3;background:#335b59}.cell{display:grid;place-items:center;padding:0;background:#fff9ec;border:2px solid #b8afd0;border-radius:5px;color:#826d99;font-weight:1000;font-size:1.3rem;touch-action:manipulation;min-width:0}.cell.filled{background:#8ce1bc;border-color:#4da985;box-shadow:inset 0 0 0 4px #c9f5db}.cell.empty{background:#ded8e4;color:#8a819c}.cell.wrong{animation:wrong .4s;background:#f99091}.cell.filled:after{content:'✦';font-size:.6em;color:#287f75}.reveal{position:absolute;inset:29% 7% auto;text-align:center;background:#241b43ee;border:3px solid #f5d19e;border-radius:17px;padding:18px;color:#fff;font-size:clamp(1.4rem,4vw,2rem);font-weight:900;z-index:2}[hidden]{display:none!important}.tools{display:flex;gap:8px;justify-content:center;margin:16px 0 0}.tools button{min-width:145px;border:2px solid #8e79b2;border-radius:11px;padding:10px 13px;background:#524270;color:#fff;font-weight:850}.tools [aria-pressed=true]{background:#f1af87;color:#291f43;border-color:#ffdaad}.message{min-height:2.7em;text-align:center;color:#eee0f4;font-weight:800;margin:13px 0}.actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.actions button{min-height:46px;background:#574474;color:#fff;border:2px solid #917caa;border-radius:11px;padding:9px 14px;font-weight:850}.actions .primary{background:#f5b584;color:#2d2042;border-color:#ffdfa8}aside{background:#fff;border:1px solid #e7deeb;border-radius:20px;padding:24px}aside h2{font-size:1.8rem;margin:7px 0}aside p{color:#6f6778}aside strong{color:#614aa0}.quiet{font-size:.88rem}.foot{color:#756f80}.foot a{color:#6c4bad;font-weight:850}@keyframes wrong{50%{transform:scale(.86)}}@media(max-width:980px){.layout{grid-template-columns:1fr}aside{max-width:720px}}@media(max-width:620px){.puzzle-shell{padding:7px}.puzzle{grid-template-columns:45px repeat(var(--n),var(--cell));grid-template-rows:54px repeat(var(--n),var(--cell));gap:1px}.row-clue,.col-clue{font-size:.56rem;gap:1px;padding:1px}.stats{gap:3px}.stats div{padding:4px}.stats small{font-size:.47rem}.stats strong{font-size:.9rem}.tools button{min-width:0;flex:1;font-size:.8rem}.cell{border-width:1px;border-radius:3px}.play{border-radius:17px}}
