:root{color-scheme:light;--line-thin: #bbb;--line-thick: #333;--cell-bg: #fff;--cell-selected: #cfe8ff;--cell-highlight: #ebf3fd;--text-given: #636363;--text-user: #558ec9;--text-note: #bfbfbf;--text-mistake: #c01c28;--text-revealed: #9a5b00;--gold-border: #d4af37;--gold-bg: #170f06;--gold-text: #ffcf5c}*{box-sizing:border-box}body{font-family:system-ui,sans-serif;margin:0;padding:1rem;background:#fff;color:#000;display:flex;flex-direction:column;align-items:center;gap:1rem}#app{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:32rem}.victory-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;opacity:0;pointer-events:none;transition:opacity .7s ease;z-index:15}#app.celebrating .victory-backdrop{opacity:.6;pointer-events:auto;cursor:pointer}.app-title,.controls,.pads-row,.update-banner{position:relative}.app-title,.controls,.pads-row,.settings-trigger,.update-banner{z-index:16}.app-title{margin:0;margin-bottom:-.5rem;font-size:2.25rem;font-weight:800;color:var(--text-given);transition:color .5s ease}#app.celebrating .app-title{color:#fff}.board{position:relative;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);width:min(90vw,32rem);aspect-ratio:1 / 1;margin-top:-.75rem;border:2px solid var(--line-thick);overflow:hidden}.cell{position:relative;border:1px solid var(--line-thin);background:var(--cell-bg);display:flex;align-items:center;justify-content:center;font-size:min(6.4vw,2.4rem);cursor:pointer;padding:0;touch-action:none;-webkit-user-select:none;user-select:none;overflow:hidden}.cell.box-top{border-top:2px solid var(--line-thick)}.cell.box-left{border-left:2px solid var(--line-thick)}.cell.box-bottom{border-bottom:2px solid var(--line-thick)}.cell.box-right{border-right:2px solid var(--line-thick)}.cell.selected{background:#b5d3f5}.cell.peer,.cell.value-match{background:var(--cell-highlight)}.cell-value{color:var(--text-user);font-weight:700;line-height:1;transform:scale(1);transform-origin:center;transition:transform .12s ease}.cell.given .cell-value{color:var(--text-given)}.cell.revealed .cell-value{color:var(--text-revealed)}.cell.value-match .cell-value,.cell.selected .cell-value{transform:scale(1.3)}.cell.mistake .cell-value{color:var(--text-mistake)}.cell.paused-cell .cell-value{color:#0000004d}.board.paused .cell{cursor:default}.board.solved{--line-thick: var(--gold-border);--line-thin: var(--gold-border);position:relative;z-index:20;border-color:var(--gold-border);box-shadow:0 0 18px #d4af3766,0 0 46px #d4af3738}.board.solved .cell{background:radial-gradient(circle at 50% 45%,#2a1c0a,#170f06 55%,#0b0703)}.board.solved .cell-value{color:var(--gold-text);text-shadow:0 0 6px rgba(255,207,92,.9),0 0 16px rgba(255,180,60,.55)}.celebration{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;z-index:5}.board.solved .celebration{opacity:1}.celebration-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2}.nailed-it-wrap{position:relative;z-index:1;max-width:85%;pointer-events:none;touch-action:none;cursor:grab}.board.solved .nailed-it-wrap{pointer-events:auto}.nailed-it-wrap.dragging{cursor:grabbing}.nailed-it{background:#000;border:5px solid var(--gold-border);border-radius:.5rem;box-shadow:0 0 16px #d4af3780,0 0 34px #d4af3740;font-weight:800;font-size:min(7vw,2rem);padding:.5em .7em;text-align:center;color:var(--gold-text);text-shadow:0 0 10px rgba(255,207,92,.6);transform:scale(0)}.board.solved .nailed-it{animation:nailed-it-pop .5s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes nailed-it-pop{0%{transform:scale(0)}60%{transform:scale(1.1)}to{transform:scale(1)}}.rabbit-hole-link{display:block;margin-top:.85em;padding-top:.6em;border-top:1px solid rgba(212,175,55,.3);font-size:.48em;font-weight:600;font-style:italic;color:var(--gold-text);text-decoration:none;text-underline-offset:.2em;cursor:pointer;opacity:.88;transition:color .15s ease,opacity .15s ease,transform .1s ease}.rabbit-hole-link:hover{color:#fff6da;opacity:1;text-decoration:underline}.rabbit-hole-link:active{transform:scale(.96)}@media (prefers-reduced-motion: reduce){.victory-backdrop{transition:none}.nailed-it{transform:scale(1);opacity:0;transition:opacity .4s ease}.board.solved .nailed-it{animation:none;opacity:1}}.cell-notes{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;padding:2px}.note{font-size:min(2.56vw,1.04rem);line-height:1;color:var(--text-note);font-weight:700;display:flex;align-items:center;justify-content:center;overflow:hidden}.note.match{color:#000;font-weight:700}.cell-value.hidden,.cell-notes.hidden{display:none}.pads-row{display:flex;flex-direction:row;gap:1.5rem;width:100%;justify-content:center}.pads-row.swapped{flex-direction:row-reverse}.pad-group{display:flex;flex-direction:column;align-items:center;gap:.4rem}.pad-swap{align-self:center;background:none;border:none;padding:0;font-size:1.5rem;line-height:1;color:var(--line-thin);cursor:pointer}.number-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.pad-button{width:min(11vw,3.4rem);height:min(11vw,3.4rem);border:1px solid var(--line-thin);border-radius:.5rem;background:var(--cell-bg);font-size:min(5.5vw,1.7rem);font-weight:700;cursor:pointer}.number-pad-value .pad-button{color:var(--text-user);font-size:min(6.6vw,2.04rem)}.number-pad-notes .pad-button{color:var(--text-note)}.pad-button.pad-complete{visibility:hidden;pointer-events:none}.controls{display:flex;flex-direction:column;gap:.5rem;width:100%}.control-group{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.gimme-wrap{position:relative}.gimme-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:16px;padding:.35rem .85rem;background:#fff;border:1px solid var(--line-thick);border-radius:.25rem;color:#000;cursor:pointer}.gimme-menu{position:absolute;top:calc(100% + .4rem);left:50%;transform:translate(-50%);z-index:25;display:flex;flex-direction:column;min-width:11rem;background:#fff;border:1px solid var(--line-thick);border-radius:.375rem;box-shadow:0 .25rem .75rem #00000026;padding:.25rem 0;overflow:hidden}.gimme-menu.hidden{display:none}.gimme-item{display:block;width:100%;text-align:left;background:none;border:none;padding:.55rem .9rem;font-size:.95rem;color:#000;cursor:pointer;white-space:nowrap}.gimme-item:hover,.gimme-item:focus-visible{background:var(--cell-highlight);outline:none}.status-group{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;font-variant-numeric:tabular-nums}.status-text-group{display:flex;align-items:baseline;gap:.75rem;justify-self:start}.status-center-group{display:flex;align-items:center;gap:.35rem;justify-self:center}.difficulty-badge{font-size:1.35rem;line-height:1}.mistakes-icon{display:flex;width:1.15rem;height:1.15rem;color:var(--text-mistake)}.mistakes-icon.hidden{display:none}.mistakes-icon svg{width:100%;height:100%}.status-icon-group{display:flex;gap:.5rem;justify-self:end}.timer-button{display:flex;align-items:baseline;gap:.4rem;background:none;border:none;padding:0;font:inherit;color:#000;cursor:pointer}.timer{font-weight:600}.paused-label{display:none;font-weight:600}.timer-button.paused .timer,.timer-button.paused .paused-label{opacity:.3}.timer-button.paused .paused-label{display:inline}.message{color:var(--text-mistake);min-height:1.2em}.icon-button{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border:none;background:none;color:var(--line-thick);cursor:pointer}.icon-button:disabled{color:var(--line-thin);cursor:default}.icon-button svg{width:100%;height:100%}.update-banner{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.5rem 1rem;background:var(--cell-highlight);border:1px solid var(--cell-selected);border-radius:.375rem;font-size:.9rem}.update-banner.hidden{display:none}.update-banner button{border:1px solid var(--line-thick);border-radius:.25rem;background:#fff;padding:.2rem .6rem;cursor:pointer}.settings-trigger{position:fixed;top:1rem;right:1rem;color:#888}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0006;z-index:30}.settings-overlay.hidden{display:none}.settings-panel{position:relative;display:flex;flex-direction:column;gap:.75rem;width:min(85vw,20rem);padding:1.5rem;background:#fff;border:2px solid var(--line-thick);border-radius:.5rem;text-align:center}.settings-panel h2{margin:0}.settings-panel-close{position:absolute;top:.5rem;right:.75rem;background:none;border:none;font-size:1.5rem;line-height:1;color:var(--line-thin);cursor:pointer}.settings-view{display:flex;flex-direction:column;gap:.75rem}.settings-view.hidden{display:none}.settings-row,.settings-action-button{border:1px solid var(--line-thick);border-radius:.25rem;background:#fff;padding:.5rem .75rem;font-size:1rem;cursor:pointer}.settings-row{display:flex;align-items:center;justify-content:space-between}.settings-status{font-weight:700;color:var(--text-given)}.settings-status.on{color:var(--text-mistake)}.settings-action-button:disabled{opacity:.4;cursor:default}.settings-action-button.hidden{display:none}.settings-divider{width:100%;border:none;border-top:1px solid var(--line-thin);margin:0}.settings-version{margin:0;color:var(--text-given);font-size:.85rem;word-break:break-all}.settings-confirm-text{margin:0;font-size:1.05rem}.settings-confirm-heading{margin:0;font-size:1.05rem;font-weight:700}.settings-confirm-buttons{display:flex;gap:.75rem}.settings-cancel-button,.settings-confirm-button,.settings-feedback-button{flex:1;border-radius:.25rem;background:#fff;padding:.5rem;font-size:1rem;cursor:pointer}.settings-cancel-button{border:1px solid var(--line-thin);color:var(--text-given)}.settings-confirm-button{border:1px solid var(--text-mistake);color:var(--text-mistake);font-weight:700}.settings-feedback-button{border:1px solid var(--text-user);color:var(--text-user);font-weight:700}.install-prompt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0006;z-index:35}.install-prompt-overlay.hidden{display:none}.install-prompt-panel{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:min(85vw,22rem);padding:1.75rem 1.5rem 1.5rem;background:#fff;border:2px solid var(--line-thick);border-radius:.5rem;text-align:center}.install-prompt-icon{display:flex;color:var(--text-given);margin-bottom:.25rem}.install-prompt-panel h2{margin:0;font-size:1.15rem}.install-prompt-body{margin:0;color:var(--text-given);font-size:.95rem}.install-prompt-body strong{color:#000}.install-prompt-buttons{display:flex;gap:.75rem;width:100%;margin-top:.5rem}.install-prompt-not-now,.install-prompt-got-it{flex:1;border-radius:.25rem;padding:.5rem;font-size:1rem;cursor:pointer}.install-prompt-not-now{background:#fff;border:1px solid var(--line-thin);color:var(--text-given)}.install-prompt-got-it{background:var(--text-user);border:1px solid var(--text-user);color:#fff;font-weight:700}
