@font-face{font-family:Courier Prime;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/cb70882a0e1cc565-s.woff2) format("woff2");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:Courier Prime;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/2ae08af5ebbe6cc2-s.p.woff2) format("woff2");unicode-range:u+00??,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:Courier Prime;font-style:italic;font-weight:700;font-display:swap;src:url(/_next/static/media/1fe023b8369d1a78-s.woff2) format("woff2");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:Courier Prime;font-style:italic;font-weight:700;font-display:swap;src:url(/_next/static/media/5ea0084f89316569-s.p.woff2) format("woff2");unicode-range:u+00??,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:Courier Prime;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d76bee0872897641-s.woff2) format("woff2");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:Courier Prime;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/111c93f1bc244164-s.p.woff2) format("woff2");unicode-range:u+00??,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:Courier Prime;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/459821db3ab9c520-s.woff2) format("woff2");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:Courier Prime;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/828e2958d60bafae-s.p.woff2) format("woff2");unicode-range:u+00??,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:Courier Prime Fallback;src:local("Arial");ascent-override:58.08%;descent-override:25.41%;line-gap-override:0.00%;size-adjust:134.50%}.__className_1f2f78{font-family:Courier Prime,Courier Prime Fallback}.__variable_1f2f78{--font-courier-prime:"Courier Prime","Courier Prime Fallback"}@font-face{font-family:Special Elite;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0c310187b552b27d-s.woff2) format("woff2");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:Special Elite;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e210f091ebfac73b-s.p.woff2) format("woff2");unicode-range:u+00??,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:Special Elite Fallback;src:local("Arial");ascent-override:60.00%;descent-override:25.33%;line-gap-override:0.00%;size-adjust:117.20%}.__className_91eb3e{font-family:Special Elite,Special Elite Fallback;font-weight:400;font-style:normal}.__variable_91eb3e{--font-special-elite:"Special Elite","Special Elite Fallback"}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--paper:#f6f3ec;--desk:#e2ddd4;--line:#c2d6ed;--line-dark:#a8c4e0;--ink:#1c1c2e;--ink-faint:#c8c4bc;--cell:min(88px,calc((100vw - 64px) / 3));--cell-past:calc(var(--cell) * 0.5);--green:#6aaa64;--orange:#c9b458;--red:#8b1a1a;--wrong:#787c7e;--green-bg:#6aaa64;--orange-bg:#c9b458;--wrong-bg:#878a8c}body{background:var(--desk);background-image:radial-gradient(ellipse at 30% 20%,rgba(255,255,240,.4) 0,transparent 60%),radial-gradient(ellipse at 70% 80%,rgba(200,190,170,.3) 0,transparent 50%);font-family:var(--font-courier-prime),"Courier New",monospace;min-height:100vh;padding:24px 16px 40px;gap:18px;touch-action:pan-y}.hdr,body{display:flex;flex-direction:column;align-items:center}.hdr{gap:6px}h1{font-family:var(--font-special-elite),serif;font-size:2.8rem;letter-spacing:12px;color:var(--ink);line-height:1;text-shadow:0 .5px 0 rgba(28,28,46,.15)}.tagline,h1{text-transform:uppercase}.tagline{font-size:.7rem;letter-spacing:4px;color:#888}.controls{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap;justify-content:center}button{background:transparent;border:1px solid #c8c4bc;font-family:inherit;font-size:.68rem;letter-spacing:2px;padding:3px 9px;cursor:pointer;color:#999;text-transform:uppercase;transition:border-color .15s,color .15s}button.mode-active,button:hover{border-color:var(--ink);color:var(--ink)}.paper{background:var(--paper);border:1px solid rgba(28,28,46,.09);box-shadow:0 1px 2px rgba(0,0,0,.06),0 3px 8px rgba(0,0,0,.1),0 10px 28px rgba(0,0,0,.08),inset 0 0 0 1px rgba(255,255,255,.5);padding:22px 30px 26px;position:relative;display:flex;flex-direction:column;align-items:center;gap:12px}.paper:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:20;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E")}.paper-head{align-self:stretch;display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:4px;border-bottom:1px dashed rgba(28,28,46,.18)}.paper-label{font-size:.68rem;letter-spacing:3px;color:#888;text-transform:uppercase}.paper-serial{font-size:.65rem;letter-spacing:2.5px;color:#999;font-family:var(--font-courier-prime),monospace;text-transform:none}.grid{display:grid;border:1.5px solid var(--line-dark);background-color:var(--paper);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:var(--cell) var(--cell);z-index:2}.grid,.tile{position:relative}.tile{width:var(--cell);height:var(--cell);display:flex;align-items:center;justify-content:center;border:1px solid var(--line);-moz-user-select:none;user-select:none;-webkit-user-select:none;transition:background .1s}.tile.active{cursor:pointer;touch-action:none}.tile.drop-target{background:rgba(100,140,220,.18)!important;box-shadow:inset 0 0 0 2.5px rgba(100,140,220,.7)}.tile-piece{width:calc(var(--cell) * .72);height:calc(var(--cell) * .72);line-height:1;z-index:2;pointer-events:none;flex-shrink:0}.tile-piece svg{width:100%;height:100%;display:block}.tile-piece.faded{opacity:.35}.pal-svg{width:calc(var(--cell) * .52);height:calc(var(--cell) * .52);pointer-events:none}.pal-svg svg{width:100%;height:100%;display:block}.tile-score{position:absolute;bottom:calc(var(--cell) * .06);right:calc(var(--cell) * .06);font-size:calc(var(--cell) * .24);font-weight:700;color:var(--ink);line-height:1;z-index:3;pointer-events:none}.tile-piece.mismatch{filter:drop-shadow(0 0 3px var(--red)) drop-shadow(0 0 6px var(--red))}.tile-piece.match{filter:drop-shadow(0 0 3px var(--green)) drop-shadow(0 0 6px var(--green))}.tile.correct{background:var(--green-bg)!important}.tile.correct .tile-score,.tile.misplace .tile-score,.tile.wrong .tile-score{color:rgba(255,255,255,.85)}.tile.correct .tile-piece,.tile.misplace .tile-piece,.tile.wrong .tile-piece{filter:brightness(0) invert(1);opacity:.9}.tile.misplace{background:var(--orange-bg)!important}.tile.wrong{background:var(--wrong-bg)!important}body.cb-mode .tile.correct:before,body.cb-mode .tile.misplace:before,body.cb-mode .tile.wrong:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.22}body.cb-mode .tile.correct:before{background:var(--green);opacity:.1}body.cb-mode .tile.misplace:before{background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--orange) 3px,var(--orange) 5px)}body.cb-mode .tile.wrong:before{background-image:radial-gradient(circle,var(--wrong) 1.2px,transparent 1.2px);background-size:7px 7px}.cb-toggle{background:transparent;border:1px solid #c8c4bc;font-family:inherit;font-size:.78rem;padding:3px 8px;cursor:pointer;color:#999;transition:border-color .15s,color .15s;line-height:1}.cb-toggle.active,.cb-toggle:hover{border-color:var(--ink);color:var(--ink)}.grid.past{margin-bottom:6px;opacity:.88;background-size:var(--cell-past) var(--cell-past)}.grid.past .tile{pointer-events:none;width:var(--cell-past);height:var(--cell-past)}.grid.past .tile-piece{width:calc(var(--cell-past) * .78);height:calc(var(--cell-past) * .78)}.grid.past .tile-score{display:none}#pastGrids{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:10px 12px;max-height:52vh;overflow-y:auto;padding:4px 2px;width:min(var(--past-container-width,380px),calc(100vw - 48px));scrollbar-width:thin}#pastGrids:empty{display:none}#pastGrids .grid.past{margin-bottom:0}.past-wrap{display:flex;flex-direction:column;align-items:center;gap:2px}.past-num{font-size:.55rem;letter-spacing:2px;color:#999;font-family:var(--font-courier-prime),monospace;line-height:1}.palette{gap:8px;flex-wrap:nowrap;z-index:2;min-height:calc(var(--cell) * .78)}.pal-piece,.palette{display:flex;justify-content:center}.pal-piece{width:calc(var(--cell) * .78);height:calc(var(--cell) * .78);flex-direction:column;align-items:center;font-size:calc(var(--cell) * .46);border:1.5px solid #c8c4bc;background:var(--paper);cursor:-webkit-grab;cursor:grab;position:relative;transition:border-color .15s,transform .12s,box-shadow .12s;box-shadow:0 1px 3px rgba(0,0,0,.08);-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:none}.pal-piece:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 4px 10px rgba(0,0,0,.14)}.pal-piece.dragging{opacity:.35;transform:scale(.92)}.pal-piece.active{border-color:var(--ink);border-width:2px;background:#fffdf6;box-shadow:0 0 0 2px var(--ink),0 6px 14px rgba(28,28,46,.22);transform:translateY(-3px) scale(1.05)}.pal-label{font-size:calc(var(--cell) * .16);color:#bbb;font-family:var(--font-courier-prime),monospace;margin-top:1px}.pal-erase{width:calc(var(--cell) * .78);height:calc(var(--cell) * .78);display:flex;flex-direction:column;align-items:center;justify-content:center;border:1.5px dashed #c8c4bc;background:transparent;cursor:-webkit-grab;cursor:grab;font-size:calc(var(--cell) * .28);color:var(--ink-faint);transition:border-color .15s,color .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.pal-erase.active,.pal-erase:hover{border-color:var(--red);color:var(--red)}.pal-erase.active{border-width:2px;box-shadow:0 0 0 2px var(--red),0 6px 14px rgba(139,26,26,.2);transform:translateY(-3px) scale(1.05)}.pal-erase.dragging{opacity:.35}#ghost{position:fixed;pointer-events:none;z-index:1000;display:none;align-items:center;justify-content:center;width:calc(var(--cell) * .72);height:calc(var(--cell) * .72);background:var(--paper);box-shadow:0 4px 16px rgba(0,0,0,.22);border:1.5px solid var(--line-dark);transform:translate(-50%,-50%);opacity:.92;padding:4px}#ghost svg{width:100%;height:100%;display:block}#ghost.visible{display:flex}@keyframes revealTile{0%{transform:scaleY(0);opacity:0}60%{transform:scaleY(1.06)}to{transform:scaleY(1);opacity:1}}.revealing{animation:revealTile .24s cubic-bezier(.34,1.56,.64,1) both}@keyframes numberPrint{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.number-print .tile-score{opacity:0;animation:numberPrint .18s ease-out forwards}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}.shake{animation:shake .32s ease}.info-bar{font-size:.7rem;font-style:italic;color:#888;letter-spacing:1px;text-align:center;min-height:16px;z-index:2;align-self:stretch}.counter{font-size:.95rem;letter-spacing:5px;z-index:2;line-height:1;padding:2px 0}.counter,.counter .used{color:var(--ink)}.counter .left{color:#c8c4bc}.legend{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;font-size:.72rem;color:#777;letter-spacing:1px;max-width:520px;margin-top:4px;padding:12px 16px;border-top:1px dashed rgba(28,28,46,.12)}.leg{display:flex;align-items:center;gap:6px}.leg-sq{width:11px;height:11px;border-radius:1px}.leg-glow{width:9px;height:9px;border-radius:50%;background:var(--ink);flex-shrink:0}.leg-glow-match{filter:drop-shadow(0 0 2px var(--green)) drop-shadow(0 0 4px var(--green))}.leg-glow-miss{filter:drop-shadow(0 0 2px var(--red)) drop-shadow(0 0 4px var(--red))}#win-overlay{position:fixed;inset:0;z-index:500;background:rgba(246,243,236,.95);display:none;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;overflow-y:auto}#win-overlay.show{display:flex}.win-big{font-family:var(--font-special-elite),serif;font-size:3rem;letter-spacing:8px;color:var(--ink)}.win-sub{font-style:italic;font-size:1rem;color:#777}.win-stats{font-family:var(--font-courier-prime),monospace;font-size:.72rem;letter-spacing:2px;color:#888;text-transform:lowercase;margin-top:-2px}.win-stats:empty{display:none}.win-countdown{font-family:var(--font-courier-prime),monospace;font-size:.72rem;letter-spacing:2.5px;color:#999;text-transform:lowercase;margin-top:6px}.win-countdown:empty{display:none}.share-preview{font-family:var(--font-courier-prime),monospace;font-size:.72rem;line-height:1.5;letter-spacing:1px;color:var(--ink);background:rgba(28,28,46,.04);border:1px dashed rgba(28,28,46,.15);padding:12px 16px;margin:8px 0 4px;max-width:380px;white-space:pre-wrap;text-align:center}.share-preview:empty{display:none}.share-btn{background:var(--ink);color:var(--paper);border:none;font-family:var(--font-courier-prime),monospace;font-size:.75rem;letter-spacing:3px;text-transform:uppercase;padding:10px 28px;cursor:pointer;transition:background .15s,transform .12s}.share-btn:hover{background:#2a2a42;color:var(--paper);transform:translateY(-1px)}.win-hint{font-size:.7rem;letter-spacing:3px;color:#bbb;text-transform:uppercase;margin-top:4px}.win-grid{display:grid;border:1.5px solid var(--line-dark)}.win-cell{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);position:relative}.win-cell-piece{width:28px;height:28px}.win-cell-piece svg{width:100%;height:100%;display:block}.win-score{position:absolute;bottom:2px;right:3px;font-size:.5rem;font-weight:700;color:var(--ink-faint)}.prose{font-size:.82rem;line-height:1.65;color:var(--ink);max-width:460px}.prose strong{font-weight:700}.prose em{font-style:italic}.prose kbd{display:inline-block;font-family:var(--font-courier-prime),monospace;font-size:.72rem;padding:1px 5px;border:1px solid #c8c4bc;border-radius:2px;background:#eeeae3;color:var(--ink);vertical-align:1px;line-height:1.4}.prose-list{font-size:.82rem;line-height:1.65;color:var(--ink);max-width:460px;padding-left:1.2em;display:flex;flex-direction:column;gap:4px}.prose-list li{padding-left:4px}.prose-table{font-size:.75rem;border-collapse:collapse;text-align:center;letter-spacing:1px;color:var(--ink)}.prose-table th{font-weight:700;text-transform:uppercase;font-size:.62rem;letter-spacing:2px;color:#888;padding:4px 12px;border-bottom:1px dashed rgba(28,28,46,.18)}.prose-table td{padding:3px 12px}.nav-link{font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:#999;text-decoration:none;border-bottom:1px dashed #bbb;transition:color .15s}.nav-link:hover{color:var(--ink);border-color:var(--ink)}.share-toast{position:fixed;left:50%;bottom:40px;transform:translateX(-50%);background:var(--ink);color:var(--paper);font-family:var(--font-courier-prime),monospace;font-size:.65rem;letter-spacing:3px;text-transform:uppercase;padding:10px 18px;box-shadow:0 4px 18px rgba(0,0,0,.22);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1100}.share-toast.show{opacity:1}