@font-face{font-family:Montserrat;src:url('assets/montserrat-400.ttf')}@font-face{font-family:Montserrat;src:url('assets/montserrat-700.ttf');font-weight:700}@font-face{font-family:Montserrat;src:url('assets/montserrat-black.ttf');font-weight:900}
:root{color-scheme:dark;--bg:#08090e;--ink:#f7f8fc;--muted:#9da2b2;--cyan:#7ee8fa;--pink:#f78fbd;--gold:#f5ce80}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Montserrat,sans-serif}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:700 11px Montserrat,sans-serif;cursor:pointer;color:var(--ink);background:#191c27;border:1px solid #343947;border-radius:8px;min-height:44px;padding:8px 12px}button:hover:not(:disabled){border-color:var(--cyan)}button:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:3px}button:disabled{cursor:default;opacity:.4}[hidden]{display:none!important}.game{max-width:480px;min-height:820px;margin:auto;padding:20px 24px 12px;display:flex;flex-direction:column;gap:14px}header{display:flex;align-items:center;gap:12px;height:48px}.brand{position:relative;overflow:hidden;width:100px;height:48px;flex-shrink:0;margin-right:auto}.brand img{position:absolute;width:123.299px;height:123.299px;max-width:none;left:-15.232px;top:-37.267px}.edition{font-size:8px;letter-spacing:1.5px;color:var(--muted)}header button{font-size:9px;padding:7px}.heading{display:flex;justify-content:space-between;align-items:end}h1{font-weight:900;font-size:40px;letter-spacing:-2px;line-height:.9;margin:6px 0}h1 span{color:var(--cyan)}.tag{font-size:8px;font-weight:700;line-height:1.7;text-align:right;letter-spacing:1px}.tag span{display:block;color:var(--muted);font-size:7px;margin-top:10px}.scores{display:flex;justify-content:space-between;border-top:1px solid #262a36;padding-top:12px}.scores div:last-child{text-align:right}.scores span{display:block;font-size:8px;letter-spacing:1.5px;color:var(--muted)}.scores strong{display:block;font-size:27px;font-weight:900;margin-top:3px}.scores div:first-child strong{color:var(--cyan)}.play-area{display:grid;gap:12px}.board-wrap{position:relative;aspect-ratio:1}#board{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;background:#10131e;border:1px solid #2b3040;padding:8px;border-radius:12px;width:100%;height:100%}.pad{padding:0;min-height:0;aspect-ratio:1;border-radius:5px;border:1px solid #272d3d;background:#1b2030;position:relative}.pad[data-color="1"],.mini[data-color="1"]{background:var(--cyan);border-color:#b1f5ff}.pad[data-color="2"],.mini[data-color="2"]{background:var(--pink);border-color:#ffc9e1}.pad[data-color="3"],.mini[data-color="3"]{background:var(--gold);border-color:#ffebc3}.pad.preview{box-shadow:inset 0 0 0 2px #fff;background:#36535e}.pad.invalid{box-shadow:inset 0 0 0 2px #fc667b}.pad.flash{animation:clear .45s ease-out}.overlay{position:absolute;inset:0;border-radius:12px;background:rgba(8,9,14,.95);display:grid;place-items:center;text-align:center;padding:16px;border:1px solid #343b4f}.eyebrow{font-size:8px;letter-spacing:1.3px;color:var(--cyan)}h2{font-size:38px;font-weight:900;line-height:1;letter-spacing:-1.5px;margin:20px 0 12px}.overlay p{font-size:11px;line-height:1.7;color:#c6c9d5}.primary{background:var(--cyan);border-color:var(--cyan);color:#08090e;width:100%;margin-top:14px;min-height:48px}.overlay .small{font-size:8px;letter-spacing:1px;margin:12px 0 0}#tray{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.piece{height:86px;display:grid;place-items:center;position:relative;padding:10px 4px;background:#111521}.piece.selected{border-color:var(--cyan);background:#182c35;box-shadow:0 0 0 1px var(--cyan)}.piece.used{background:transparent;border-style:dashed}.piece .number{position:absolute;left:6px;top:5px;font-size:8px;color:var(--muted)}.piece-grid{display:grid;gap:3px}.mini{width:12px;height:12px;border:1px solid transparent;border-radius:2px}.anchor{position:absolute;bottom:4px;font-size:7px;color:var(--cyan);letter-spacing:1px}.piece.no-fit{border-style:dashed}#status{font-size:11px;min-height:15px;text-align:center;color:var(--cyan);margin:0}#instructions{font-size:9px;line-height:1.7;text-align:center;color:#b4b9c7;margin:0}.bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto}.bottom span{font-size:8px;letter-spacing:1px;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:8px;color:#9da2b2;font-size:7px;border-top:1px solid #262a36;padding-top:10px}#share-actions{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}#share-actions button{font-size:9px;padding:7px 9px}#message.result{font-size:58px;color:var(--cyan);margin:10px 0}@keyframes clear{from{background:#fff;box-shadow:0 0 18px var(--cyan)}to{background:#1b2030}}@media(max-width:380px){.game{padding:16px;gap:12px}.edition{display:none}h1{font-size:36px}.tag{font-size:7px}h2{font-size:30px}.overlay p{font-size:10px}.piece{height:80px}.game{min-height:780px}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}
/* Keep the standalone shell inside the established 820px website embed. */
.game{height:820px;min-height:820px;gap:7px;padding:16px 20px 12px}header{height:44px;flex-shrink:0}.heading{min-height:44px;align-items:center}h1{font-size:32px;line-height:1;margin:0}h1 br{display:none}.tag{font-size:6px}.tag span{margin-top:4px;font-size:6px}.scores{padding-top:8px;min-height:50px}.scores strong{font-size:25px}.play-area{gap:8px}.board-wrap{width:min(100%,320px);margin:auto}.piece{height:64px}.overlay{padding:10px}h2{font-size:32px;margin:12px 0 8px}.overlay p{margin:8px 0}.primary{margin-top:8px;min-height:44px}.overlay .small{margin-top:8px;font-size:7px}#share-actions{gap:4px}#share-actions button{font-size:8px;padding:5px 7px}#message.result{font-size:48px;margin:6px 0}footer{font-size:6px;padding-top:8px}.bottom{margin-top:auto}@media(max-width:380px){.game{height:820px;min-height:820px;padding:16px 14px 12px}h1{font-size:29px}.tag{font-size:5px}.overlay p{font-size:9px}.piece{height:64px}#share-actions button{min-height:36px}#message.result{font-size:40px}}
/* A persistent outline must remain visible until the player confirms. */
.pad.preview{background:#36535e!important;box-shadow:inset 0 0 0 3px #7ee8fa}.pad.invalid{box-shadow:inset 0 0 0 3px #fc667b}#place{background:var(--cyan);color:#08090e;min-width:112px;font-size:12px}#place:disabled{background:#191c27;color:#9da2b2}.bottom #combo{font-size:7px;text-align:center;flex:1}#status{min-height:30px;line-height:1.4}
