@font-face{font-family:SpaceMono;src:local("Space Mono");font-weight:400;font-style:normal;font-display:swap}*{margin:0;padding:0;box-sizing:border-box;border:0 solid}:root{--color-primary: #312320;--color-secondary: #4A5D46;--color-surface: #f7dfca;--color-accent: #cc5500;--font-main: "Space Mono", monospace}html,body{height:100dvh;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--color-surface);color:var(--color-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100dvh;display:flex;align-items:center;justify-content:center}a{color:inherit;text-decoration:inherit;transition:all .3s ease-in-out}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}.win-overlay{position:fixed;inset:0;background:#312320eb;display:flex;align-items:center;justify-content:center;z-index:100;cursor:pointer}.win-overlay.dissolving{animation:winDissolve .8s ease-out forwards;pointer-events:none}.win-scene{perspective:1000px}.win-card{position:relative;width:340px;min-height:220px;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.34,1.56,.64,1)}.win-card.flipped{transform:rotateY(180deg)}.win-card-front,.win-card-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:2px solid var(--color-accent);padding:2rem}.win-card-back{transform:rotateY(180deg)}.win-message{font-family:var(--font-main);font-size:1.25rem;color:var(--color-accent);font-weight:700;text-align:center;line-height:1.6}.win-number{font-family:var(--font-main);font-size:5rem;font-weight:700;color:var(--color-accent)}@keyframes winDissolve{0%{opacity:1}to{opacity:0}}.spelling-bee{display:flex;flex-direction:column;align-items:center;width:100%;max-width:32rem;margin:0 auto;padding:1rem;gap:1rem;pointer-events:auto;background-color:var(--color-surface)}.game-header{display:flex;width:100%;justify-content:space-between;align-items:center;padding:.5rem 0}.back-button{font-family:var(--font-main);font-size:.875rem;background-color:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-accent);padding:.25rem .75rem;cursor:pointer;transition:all .15s ease-in-out}.back-button:hover{background-color:var(--color-accent);color:var(--color-surface)}.score-section{display:flex;align-items:center;gap:.75rem}.rank{font-size:.875rem;color:var(--color-secondary)}.score-value{font-size:1.25rem;font-weight:700;color:var(--color-accent)}.progress-bar{width:100%;height:4px;background-color:var(--color-primary);opacity:.15;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background-color:var(--color-accent);opacity:1;transition:width .5s ease-out;border-radius:2px}.game-area{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%}.current-input{min-height:2.5rem;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;gap:.05em}.input-letter{color:var(--color-primary);animation:letterPop .1s ease-out}.input-letter.center{color:var(--color-accent)}@keyframes letterPop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.cursor{color:var(--color-accent);animation:blink 1s step-end infinite;font-weight:400}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.message{font-size:.875rem;font-weight:700;min-height:1.25rem;text-align:center;animation:messageFlyUp .3s ease-out}.message-empty{visibility:hidden}.message-success{color:var(--color-secondary)}.message-error{color:var(--color-primary)}.message-pangram{color:var(--color-accent);font-size:1rem;animation:pangramFlash .5s ease-out}@keyframes messageFlyUp{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pangramFlash{0%{transform:scale(.8) translateY(8px);opacity:0}50%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.honeycomb{display:flex;flex-direction:column;align-items:center}.hex-row{display:flex;gap:3px}.hex-row+.hex-row{margin-top:-.85rem}.hex-button{width:3.9rem;height:4.5rem;font-family:var(--font-main);font-size:1.25rem;font-weight:700;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .1s ease-in-out;background-color:#eedcc8;color:var(--color-primary);border:none;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);filter:drop-shadow(0 0 1px var(--color-secondary))}.hex-button:hover{background-color:#e2ceb4}.hex-button:active{transform:scale(.93)}.hex-button.hex-center{background-color:var(--color-accent);color:var(--color-surface)}.hex-button.hex-center:hover{background-color:var(--color-primary)}.controls{display:flex;gap:.5rem}.control-button{font-family:var(--font-main);font-size:.75rem;background-color:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-accent);padding:.5rem 1rem;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;transition:all .15s ease-in-out}.control-button:hover{background-color:var(--color-accent);color:var(--color-surface)}.found-words{width:100%;background-color:var(--color-surface);border:1px solid var(--color-accent);padding:.75rem}.found-words-header{font-size:.875rem;font-weight:700;color:var(--color-secondary);margin-bottom:.5rem}.found-words-list{display:flex;flex-wrap:wrap;gap:.5rem}.found-word{font-size:.875rem;color:var(--color-primary);padding:.125rem .5rem;border:1px solid var(--color-secondary);animation:wordSlideIn .2s ease-out}.found-word.pangram{background-color:var(--color-accent);color:var(--color-surface);border-color:var(--color-accent);font-weight:700}@keyframes wordSlideIn{0%{transform:translate(-10px);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:640px){.hex-button{width:3.12rem;height:3.6rem;font-size:1rem}.hex-row+.hex-row{margin-top:-.68rem}.current-input{font-size:1.5rem}}.hex-cell{width:3.2rem;height:3.7rem;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);border:none;cursor:pointer;font-family:var(--font-main);font-size:.9rem;font-weight:700;text-transform:uppercase;display:flex;align-items:center;justify-content:center;transition:transform .1s ease;padding:0;filter:drop-shadow(0 0 1px var(--color-secondary))}.hex-cell:hover{transform:scale(1.1)}.hex-cell:active{transform:scale(.95)}.hex-cell-center{background-color:var(--color-accent);color:#fff}.hex-cell-inner{background-color:var(--color-secondary);color:#f7dfca}.hex-cell-outer{background-color:#eedcc8;color:var(--color-primary)}.hex-grid{display:flex;flex-direction:column;align-items:center;padding:1rem 0}.hex-grid .hex-row{display:flex;gap:3px}.hex-grid .hex-row+.hex-row{margin-top:-.72rem}.evil-bee-win-overlay{position:fixed;inset:0;background:#312320eb;display:flex;align-items:center;justify-content:center;z-index:100;cursor:pointer}.evil-bee-win-overlay.dissolving{animation:evilBeeWinDissolve .8s ease-out forwards;pointer-events:none}.evil-bee-win-scene{perspective:1000px}.evil-bee-win-card{position:relative;width:340px;min-height:220px;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.34,1.56,.64,1)}.evil-bee-win-card.flipped{transform:rotateY(180deg)}.evil-bee-win-card-front,.evil-bee-win-card-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:2px solid var(--color-accent);padding:2rem}.evil-bee-win-card-back{transform:rotateY(180deg)}.evil-bee-win-message{font-family:var(--font-main);font-size:1.25rem;color:var(--color-accent);font-weight:700;text-align:center;line-height:1.6}.evil-bee-win-number{font-family:var(--font-main);font-size:5rem;font-weight:700;color:var(--color-accent)}@keyframes evilBeeWinDissolve{0%{opacity:1}to{opacity:0}}.evil-bee{display:flex;flex-direction:column;align-items:center;width:100%;max-width:500px;margin:0 auto;padding:1rem;position:relative;z-index:1;pointer-events:auto;background-color:var(--color-surface)}.evil-bee .game-header{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:1rem}.evil-bee .back-button{font-family:var(--font-main);font-size:.85rem;background:none;border:1px solid var(--color-secondary);color:var(--color-secondary);padding:.25rem .75rem;cursor:pointer;transition:all .2s}.evil-bee .back-button:hover{background:var(--color-secondary);color:var(--color-surface)}.evil-bee .score-section{display:flex;align-items:center;gap:.75rem}.evil-bee .rank{font-size:.85rem;color:var(--color-secondary)}.evil-bee .score-value{font-size:1.1rem;font-weight:700;color:var(--color-accent)}.evil-bee .game-area{display:flex;flex-direction:column;align-items:center;width:100%}.evil-bee .current-input{font-size:1.5rem;font-weight:700;min-height:2.5rem;display:flex;align-items:center;justify-content:center;letter-spacing:.1em;text-transform:uppercase}.evil-bee .input-letter{color:var(--color-primary)}.evil-bee .input-letter.center{color:var(--color-accent)}.evil-bee .cursor{animation:blink 1s step-end infinite;color:var(--color-secondary);font-weight:300}@keyframes blink{50%{opacity:0}}.evil-bee .message{font-size:.85rem;color:var(--color-accent);min-height:1.5rem;text-align:center}.evil-bee .message-empty{visibility:hidden}.evil-bee .controls{display:flex;gap:.5rem;margin-top:.5rem}.evil-bee .control-button{font-family:var(--font-main);font-size:.8rem;background:none;border:1px solid var(--color-primary);color:var(--color-primary);padding:.4rem 1rem;cursor:pointer;transition:all .2s}.evil-bee .control-button:hover{background:var(--color-primary);color:var(--color-surface)}.evil-bee .enter-button{border-color:var(--color-accent);color:var(--color-accent)}.evil-bee .enter-button:hover{background:var(--color-accent);color:#fff}.evil-bee .found-words{width:100%;margin-top:1.5rem}.evil-bee .found-words-header{font-size:.85rem;color:var(--color-secondary);margin-bottom:.5rem}.evil-bee .found-words-list{display:flex;flex-wrap:wrap;gap:.4rem}.evil-bee .found-word{font-size:.8rem;background:var(--color-secondary);color:var(--color-surface);padding:.2rem .5rem}.wordle-win-overlay{position:fixed;inset:0;background:#312320eb;display:flex;align-items:center;justify-content:center;z-index:100;cursor:pointer}.wordle-win-overlay.dissolving{animation:wordleWinDissolve .8s ease-out forwards;pointer-events:none}.wordle-win-scene{perspective:1000px}.wordle-win-card{position:relative;width:340px;min-height:220px;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.34,1.56,.64,1)}.wordle-win-card.flipped{transform:rotateY(180deg)}.wordle-win-card-front,.wordle-win-card-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:2px solid var(--color-accent);padding:2rem}.wordle-win-card-back{transform:rotateY(180deg)}.wordle-win-message{font-family:var(--font-main);font-size:1.25rem;color:var(--color-accent);font-weight:700;text-align:center;line-height:1.6}.wordle-win-number{font-family:var(--font-main);font-size:5rem;font-weight:700;color:var(--color-accent)}@keyframes wordleWinDissolve{0%{opacity:1}to{opacity:0}}.evil-wordle{display:flex;flex-direction:column;align-items:center;width:100%;max-width:500px;margin:0 auto;padding:1rem;position:relative;z-index:1;pointer-events:auto;background-color:var(--color-surface)}.evil-wordle .game-header{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:1rem}.evil-wordle .back-button{font-family:var(--font-main);font-size:.85rem;background:none;border:1px solid var(--color-secondary);color:var(--color-secondary);padding:.25rem .75rem;cursor:pointer;transition:all .2s}.evil-wordle .back-button:hover{background:var(--color-secondary);color:var(--color-surface)}.evil-wordle .tile-grid{display:flex;flex-direction:column;gap:5px;margin-bottom:1rem}.evil-wordle .tile-row{display:flex;gap:5px}.evil-wordle .tile{width:52px;height:52px;display:flex;align-items:center;justify-content:center;font-family:var(--font-main);font-size:1.5rem;font-weight:700;text-transform:uppercase;border:2px solid var(--color-secondary);color:var(--color-primary)}.evil-wordle .tile.filled{border-color:var(--color-primary)}.evil-wordle .tile.correct{background:#538d4e;border-color:#538d4e;color:#fff}.evil-wordle .tile.present{background:#b59f3b;border-color:#b59f3b;color:#fff}.evil-wordle .tile.absent{background:#3a3a3c;border-color:#3a3a3c;color:#fff}.evil-wordle .message{font-family:var(--font-main);font-size:.85rem;color:var(--color-accent);min-height:1.5rem;text-align:center;margin-bottom:.5rem}.evil-wordle .keyboard{display:flex;flex-direction:column;gap:6px;align-items:center;margin-top:.5rem}.evil-wordle .keyboard-row{display:flex;gap:4px}.evil-wordle .key{font-family:var(--font-main);font-size:.75rem;font-weight:700;text-transform:uppercase;min-width:30px;height:42px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-secondary);background:var(--color-surface);color:var(--color-primary);cursor:pointer;padding:0 6px;transition:all .15s}.evil-wordle .key:hover{background:var(--color-secondary);color:var(--color-surface)}.evil-wordle .key.wide{min-width:52px;font-size:.65rem}.evil-wordle .key.correct{background:#538d4e;border-color:#538d4e;color:#fff}.evil-wordle .key.present{background:#b59f3b;border-color:#b59f3b;color:#fff}.evil-wordle .key.absent{background:#3a3a3c;border-color:#3a3a3c;color:#fff}.evil-wordle .puzzle-wide .tile{width:42px;height:42px;font-size:1.25rem}.evil-wordle .tile.pre-filled{border-color:#538d4e;background:#538d4e26}.math-win-overlay{position:fixed;inset:0;background:#312320eb;display:flex;align-items:center;justify-content:center;z-index:100;cursor:pointer}.math-win-overlay.dissolving{animation:mathWinDissolve .8s ease-out forwards;pointer-events:none}.math-win-scene{perspective:1000px}.math-win-card{position:relative;width:340px;min-height:220px;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.34,1.56,.64,1)}.math-win-card.flipped{transform:rotateY(180deg)}.math-win-card-front,.math-win-card-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:2px solid var(--color-accent);padding:2rem}.math-win-card-back{transform:rotateY(180deg)}.math-win-message{font-family:var(--font-main);font-size:1.25rem;color:var(--color-accent);font-weight:700;text-align:center;line-height:1.6}.math-win-number{font-family:var(--font-main);font-size:5rem;font-weight:700;color:var(--color-accent)}@keyframes mathWinDissolve{0%{opacity:1}to{opacity:0}}.math-trick{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem;position:relative;pointer-events:auto;background-color:var(--color-surface)}.math-trick-back{position:absolute;top:1rem;left:1rem;background:none;border:none;font-family:var(--font-main);font-size:1rem;color:var(--color-secondary);cursor:pointer;text-decoration:underline}.math-trick-back:hover{color:var(--color-accent)}.math-trick-timer{font-family:var(--font-main);font-size:3rem;font-weight:700;color:var(--color-accent)}.math-trick-equation{font-family:var(--font-main);font-size:2.5rem;font-weight:700;color:var(--color-primary)}.math-trick-input-row{display:flex;gap:.75rem;align-items:center}.math-trick-input{font-family:var(--font-main);font-size:1.5rem;padding:.5rem 1rem;border:2px solid var(--color-accent);background:var(--color-surface);color:var(--color-primary);text-align:center;width:8rem}.math-trick-input:focus{outline:none;border-color:var(--color-secondary)}.math-trick-input:disabled{opacity:.5}.math-trick-submit{font-family:var(--font-main);font-size:1rem;padding:.5rem 1.5rem;background:var(--color-accent);color:var(--color-surface);border:none;cursor:pointer}.math-trick-submit:hover{opacity:.8}.math-trick-submit:disabled{opacity:.5;cursor:default}.math-trick-feedback{font-family:var(--font-main);font-size:1.25rem;color:var(--color-accent);font-weight:700}.cross-win-overlay{position:fixed;inset:0;background:#312320eb;display:flex;align-items:center;justify-content:center;z-index:100;cursor:pointer}.cross-win-overlay.dissolving{animation:crossWinDissolve .8s ease-out forwards;pointer-events:none}.cross-win-scene{perspective:1000px}.cross-win-card{position:relative;width:340px;min-height:220px;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.34,1.56,.64,1)}.cross-win-card.flipped{transform:rotateY(180deg)}.cross-win-card-front,.cross-win-card-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:2px solid var(--color-accent);padding:2rem}.cross-win-card-back{transform:rotateY(180deg)}.cross-win-message{font-family:var(--font-main);font-size:1.25rem;color:var(--color-accent);font-weight:700;text-align:center;line-height:1.6}.cross-win-number{font-family:var(--font-main);font-size:5rem;font-weight:700;color:var(--color-accent)}@keyframes crossWinDissolve{0%{opacity:1}to{opacity:0}}.mini-cross{display:flex;flex-direction:column;align-items:center;width:100%;max-width:500px;margin:0 auto;padding:1rem;pointer-events:auto;font-family:var(--font-main);background-color:var(--color-surface)}.mini-cross .game-header{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:1rem}.mini-cross .game-header h2{margin:0;font-size:1.1rem;color:var(--color-primary)}.mini-cross .back-button{background:transparent;border:1px solid var(--color-secondary);color:var(--color-secondary);font-family:var(--font-main);font-size:.8rem;padding:.3rem .8rem;cursor:pointer;transition:background .2s,color .2s}.mini-cross .back-button:hover{background:var(--color-secondary);color:var(--color-surface)}.mini-cross .crossword-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;width:100%;max-width:320px;margin-bottom:1rem;background:var(--color-primary);border:2px solid var(--color-primary)}.mini-cross .cell{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;color:var(--color-primary);background:var(--color-surface);cursor:pointer;-webkit-user-select:none;user-select:none}.mini-cross .cell.black{background:var(--color-primary);cursor:default}.mini-cross .cell.selected{background:#f0c040}.mini-cross .cell.word-highlight{background:#ffe8a0}.mini-cross .cell.selected.word-highlight{background:#f0c040}.mini-cross .clue-number{position:absolute;top:1px;left:2px;font-size:.5rem;font-weight:400;line-height:1;color:var(--color-primary)}.mini-cross .clues-container{display:flex;gap:1.5rem;width:100%}.mini-cross .clue-section{flex:1}.mini-cross .clue-section h3{font-size:.8rem;margin:0 0 .4rem;color:var(--color-accent);text-transform:uppercase}.mini-cross .clue-list{list-style:none;padding:0;margin:0}.mini-cross .clue-item{font-size:.65rem;line-height:1.4;padding:.15rem .2rem;color:var(--color-primary)}.mini-cross .clue-item.active-clue{background:#ffe8a0}.lyric-win-overlay{position:fixed;inset:0;background:#312320eb;display:flex;align-items:center;justify-content:center;z-index:100;cursor:pointer}.lyric-win-overlay.dissolving{animation:lyricWinDissolve .8s ease-out forwards;pointer-events:none}.lyric-win-scene{perspective:1000px}.lyric-win-card{position:relative;width:340px;min-height:220px;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.34,1.56,.64,1)}.lyric-win-card.flipped{transform:rotateY(180deg)}.lyric-win-card-front,.lyric-win-card-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:2px solid var(--color-accent);padding:2rem}.lyric-win-card-back{transform:rotateY(180deg)}.lyric-win-message{font-family:var(--font-main);font-size:1.25rem;color:var(--color-accent);font-weight:700;text-align:center;line-height:1.6}.lyric-win-number{font-family:var(--font-main);font-size:5rem;font-weight:700;color:var(--color-accent)}@keyframes lyricWinDissolve{0%{opacity:1}to{opacity:0}}.lyric-puzzle{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem;position:relative;pointer-events:auto;background-color:var(--color-surface)}.lyric-puzzle-back{position:absolute;top:1rem;left:1rem;background:none;border:none;font-family:var(--font-main);font-size:1rem;color:var(--color-secondary);cursor:pointer;text-decoration:underline}.lyric-puzzle-back:hover{color:var(--color-accent)}.lyric-puzzle-timer{font-family:var(--font-main);font-size:3rem;font-weight:700;color:var(--color-accent)}.lyric-puzzle-cover{width:200px;height:200px;object-fit:cover;border:2px solid var(--color-accent)}.lyric-puzzle-lyric{font-family:var(--font-main);font-size:2rem;font-weight:700;color:var(--color-primary);text-align:center}.lyric-puzzle-input-row{display:flex;gap:.75rem;align-items:center}.lyric-puzzle-input{font-family:var(--font-main);font-size:1.5rem;padding:.5rem 1rem;border:2px solid var(--color-accent);background:var(--color-surface);color:var(--color-primary);text-align:center;width:8rem}.lyric-puzzle-input:focus{outline:none;border-color:var(--color-secondary)}.lyric-puzzle-input:disabled{opacity:.5}.lyric-puzzle-submit{font-family:var(--font-main);font-size:1rem;padding:.5rem 1.5rem;background:var(--color-accent);color:var(--color-surface);border:none;cursor:pointer}.lyric-puzzle-submit:hover{opacity:.8}.lyric-puzzle-submit:disabled{opacity:.5;cursor:default}.lyric-puzzle-feedback{font-family:var(--font-main);font-size:1.25rem;color:var(--color-accent);font-weight:700}.pips-win-overlay{position:fixed;inset:0;background:#312320eb;display:flex;align-items:center;justify-content:center;z-index:100;cursor:pointer}.pips-win-overlay.dissolving{animation:pipsWinDissolve .8s ease-out forwards;pointer-events:none}.pips-win-scene{perspective:1000px}.pips-win-card{position:relative;width:340px;min-height:220px;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.34,1.56,.64,1)}.pips-win-card.flipped{transform:rotateY(180deg)}.pips-win-card-front,.pips-win-card-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:2px solid var(--color-accent);padding:2rem}.pips-win-card-back{transform:rotateY(180deg)}.pips-win-message{font-family:var(--font-main);font-size:1.25rem;color:var(--color-accent);font-weight:700;text-align:center;line-height:1.6}@keyframes pipsWinDissolve{0%{opacity:1}to{opacity:0}}.pips-game{position:relative;display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem 1rem;width:100%;max-width:28rem;pointer-events:auto;background-color:var(--color-surface)}.pips-back-button{position:absolute;top:0;left:0;background:var(--color-surface);border:1px solid var(--color-accent);color:var(--color-primary);font-family:var(--font-main);font-size:1.25rem;cursor:pointer;padding:.25rem .75rem;line-height:1}.pips-board{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;position:relative}.pips-grid{display:grid;gap:3px;width:100%;max-width:18rem;aspect-ratio:6 / 7;position:relative}.pips-cell{display:flex;align-items:center;justify-content:center;border:1px solid rgba(49,35,32,.3);cursor:pointer;transition:opacity .15s ease-in-out;aspect-ratio:1;border-radius:2px}.pips-cell:hover{opacity:.8}.pips-cell-clickable{cursor:pointer}.pips-cell-filled{box-shadow:inset 0 0 0 2px #31232026}.pips-cell-inactive{visibility:hidden}.pips-tray{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;width:100%}.domino-tile{display:flex;gap:0;background:var(--color-surface);border:2px solid var(--color-primary);border-radius:6px;cursor:pointer;padding:0;transition:all .15s ease-in-out}.domino-tile:hover{border-color:var(--color-accent)}.domino-tile-selected{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent);transform:scale(1.05)}.domino-tile-vertical{flex-direction:column}.domino-tile-vertical .domino-tile-divider{width:100%;height:1px;border-top:1px solid var(--color-primary);border-left:none}.domino-tile-grid{pointer-events:none;width:100%;height:100%}.domino-tile-grid .pip-dots{width:100%;height:100%}.domino-tile-divider{width:1px;border-left:1px solid var(--color-primary)}.pip-dots{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:2rem;height:2.5rem;padding:.25rem}.pip-dot{width:.35rem;height:.35rem;border-radius:50%;background-color:var(--color-primary);align-self:center;justify-self:center}.region-overlay{gap:3px}.region-border-cell{box-sizing:border-box}.region-badge{position:relative;align-self:start;justify-self:start;font-family:var(--font-main);font-size:.6rem;font-weight:700;color:#fff;padding:.05rem .25rem;border-radius:2px;z-index:2;pointer-events:none;line-height:1.2;margin:1px}.pips-rotate-button{background:var(--color-surface);border:1px solid var(--color-accent);color:var(--color-primary);font-family:var(--font-main);font-size:1.25rem;cursor:pointer;padding:.25rem .75rem;border-radius:4px;line-height:1}.pips-rotate-button:hover{background:var(--color-accent)}@media(max-width:640px){.pips-grid{max-width:15rem}.pip-dots{width:1.75rem;height:2.25rem}.pip-dot{width:.3rem;height:.3rem}}.intro-overlay{position:fixed;inset:0;background:#312320eb;display:flex;align-items:center;justify-content:center;z-index:100;cursor:pointer}.intro-overlay.dissolving{animation:introDissolve .8s ease-out forwards;pointer-events:none}.intro-scene{perspective:1000px}.intro-card{position:relative;width:340px;min-height:220px;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.34,1.56,.64,1)}.intro-card.flipped{transform:rotateY(180deg)}.intro-card-front,.intro-card-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:2px solid var(--color-accent);padding:2rem}.intro-card-back{transform:rotateY(180deg)}.intro-dialogue{font-family:var(--font-main);color:var(--color-primary);font-size:.95rem;line-height:1.6;text-align:left}.intro-line{margin:0 0 1rem}.intro-line strong{color:var(--color-accent)}.intro-line-enter{animation:introLineIn .3s ease-out}.intro-number{font-family:var(--font-main);font-size:5rem;font-weight:700;color:var(--color-accent)}@keyframes introLineIn{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes introDissolve{0%{opacity:1}to{opacity:0}}.apiary-intro-overlay{position:fixed;inset:0;background:#312320eb;display:flex;align-items:center;justify-content:center;z-index:100;cursor:pointer}.apiary-intro-overlay.dissolving{animation:apiaryIntroDissolve .8s ease-out forwards;pointer-events:none}.apiary-intro-scene{perspective:1000px}.apiary-intro-card{position:relative;width:340px;min-height:220px;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.34,1.56,.64,1)}.apiary-intro-card.flipped{transform:rotateY(180deg)}.apiary-intro-card-front,.apiary-intro-card-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:2px solid var(--color-accent);padding:2rem}.apiary-intro-card-back{transform:rotateY(180deg)}.apiary-intro-dialogue{font-family:var(--font-main);color:var(--color-primary);font-size:.95rem;line-height:1.6;text-align:left}.apiary-intro-line{margin:0 0 1rem}.apiary-intro-line strong{color:var(--color-accent)}.apiary-intro-line-enter{animation:apiaryIntroLineIn .3s ease-out}.apiary-intro-number{font-family:var(--font-main);font-size:5rem;font-weight:700;color:var(--color-accent)}@keyframes apiaryIntroLineIn{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes apiaryIntroDissolve{0%{opacity:1}to{opacity:0}}.dev-solve-panel{position:fixed;bottom:8px;left:8px;display:flex;align-items:center;gap:4px;font-size:10px;opacity:.3;z-index:9999}.dev-solve-panel input{width:50px;font-size:10px;border:1px solid #999;border-radius:2px;padding:1px 3px;background:transparent}.animated-canvas{position:fixed;inset:0;z-index:0}.content{position:relative;z-index:1;height:100%;width:100%;max-width:32rem;margin-left:auto;margin-right:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.card-wrapper{position:relative;margin-left:5rem;margin-right:5rem;display:flex;flex-direction:column;gap:.5rem;background-color:var(--color-surface);padding:1rem}.welcome-badge{text-align:center;background-color:var(--color-surface);position:absolute;top:0;left:50%;transform:translate(-50%,-50%);color:var(--color-secondary);border:1px solid var(--color-accent);padding:.25rem .75rem;white-space:nowrap;z-index:1}.welcome-badge h1{font-size:inherit;font-weight:inherit}.main-card{display:flex;flex-direction:column;gap:.5rem;background-color:var(--color-surface);text-align:center;font-size:1.25rem;align-items:center;justify-content:center;border:1px solid var(--color-accent);padding:2rem 2.5rem 1.5rem;pointer-events:auto}.nav-link{cursor:pointer;width:min-content;color:var(--color-primary);text-decoration:none;white-space:nowrap}.nav-link:hover .blur-text{filter:blur(3px);transition:all .15s ease-in-out}.nav-link-locked{pointer-events:none;cursor:default}.nav-link-just-unlocked{animation:unlock-glow .8s ease-out}@keyframes unlock-glow{0%{text-shadow:0 0 0 transparent}40%{text-shadow:0 0 12px var(--color-secondary)}to{text-shadow:0 0 0 transparent}}.blur-text{transition:all .15s ease-in-out}.bottom-row{width:100%;height:2rem;display:flex;gap:.5rem;color:var(--color-secondary)}.bottom-cell{flex-grow:1;padding:.5rem;background-color:var(--color-surface);text-align:center;display:flex;align-items:center;justify-content:center;font-size:.875rem;border:1px solid var(--color-accent);height:2rem;pointer-events:auto}.bottom-cell-square{display:flex;background-color:var(--color-surface);font-size:1.125rem;align-items:center;justify-content:center;font-weight:700;border:1px solid var(--color-accent);aspect-ratio:1;height:2rem;pointer-events:auto}.footer-row{width:100%;height:1.25rem;display:flex;gap:.5rem;color:var(--color-secondary)}.footer-flowers{display:flex;flex-grow:1;align-items:center;padding:0 .5rem;justify-content:center;background-color:var(--color-surface);border:1px solid var(--color-accent);white-space:nowrap;font-size:.875rem;pointer-events:auto}.footer-link{flex-grow:1;padding:0 .5rem;background-color:var(--color-surface);text-align:center;display:flex;align-items:center;justify-content:center;font-size:.75rem;border:1px solid var(--color-accent);pointer-events:auto}@media(max-width:640px){.card-wrapper{margin-left:1rem;margin-right:1rem}.main-card{padding:2rem 1.5rem 1.5rem;font-size:1rem}}
