@import "https://fonts.googleapis.com/css2?family=Patrick+Hand&family=Kalam:wght@400;700&display=swap";:root{--paper-bg:#fdf8e3;--paper-lines:#a8d4f0;--paper-margin:#e8a0a0;--pencil-gray:#4a4a4a;--color-green:#5a9a54;--color-yellow:#c9a227;--color-gray:#6b6b6b;--color-light-gray:#c5bfa8;--color-bg:var(--paper-bg);--color-text:#2c2416;--color-selected:#7eb8e0;--color-primary:#4a8c44;--color-primary-hover:#3d7439;--font-display:"Kalam", cursive;--font-body:"Patrick Hand", cursive;--tile-w:52px;--tile-h:66px;--tile-gap:6px;--operator-w:32px;--history-tile-w:42px;--history-tile-h:50px;--ball-green:#2d936c;--ball-red:#e63946;--ball-yellow:#f4a261}*{box-sizing:border-box}body{font-family:var(--font-body);color:var(--color-text);background:#d4c4a8;min-height:100vh;margin:0;padding:0;overflow-x:hidden}#root{min-height:100vh;position:relative}.bouncing-balls-container{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.bouncing-ball{border-radius:50%;position:absolute;bottom:-80px;box-shadow:inset -8px -8px 20px #0000004d,inset 8px 8px 20px #ffffff4d,0 4px 8px #0003}.ball-green{background:radial-gradient(circle at 30% 30%, #5fd9a4, var(--ball-green) 50%, #1a6b4a);width:50px;height:50px}.ball-green-1{animation:27s linear 2s infinite arc-green-high-1;left:8%}.ball-green-2{animation:27s linear 17s infinite arc-green-high-2;left:auto;right:12%}.ball-red{background:radial-gradient(circle at 30% 30%, #ff6b6b, var(--ball-red) 50%, #b82d3a);width:55px;height:55px}.ball-red-1{animation:30s linear 12s infinite arc-red-medium-1;left:5%}.ball-red-2{animation:30s linear 7s infinite arc-red-medium-2;left:auto;right:6%}.ball-yellow{background:radial-gradient(circle at 30% 30%, #ffcc80, var(--ball-yellow) 50%, #c47b30);width:42px;height:42px}.ball-yellow-1{animation:18s linear 11s infinite arc-yellow-low-1;left:20%}.ball-yellow-2{animation:18s linear 14s infinite arc-yellow-low-2;left:auto;right:18%}@keyframes arc-green-high-1{0%{transform:translate(0)rotate(0)}1%{transform:translate(8vw,-60vh)rotate(90deg)}2%{transform:translate(16vw,-100vh)rotate(180deg)}3%{transform:translate(24vw,-120vh)rotate(270deg)}4%{transform:translate(32vw,-120vh)rotate(360deg)}5%{transform:translate(40vw,-100vh)rotate(450deg)}6%{transform:translate(48vw,-60vh)rotate(540deg)}7%{transform:translate(56vw,-15vh)rotate(630deg)}8%{transform:translate(64vw,30vh)rotate(720deg)}8.1%,to{transform:translateY(100vh)rotate(720deg)}}@keyframes arc-green-high-2{0%{transform:translate(0)rotate(0)}1%{transform:translate(-7vw,-55vh)rotate(-80deg)}2%{transform:translate(-14vw,-95vh)rotate(-160deg)}3%{transform:translate(-21vw,-115vh)rotate(-240deg)}4%{transform:translate(-28vw,-118vh)rotate(-320deg)}5%{transform:translate(-35vw,-98vh)rotate(-400deg)}6%{transform:translate(-42vw,-62vh)rotate(-480deg)}7%{transform:translate(-49vw,-18vh)rotate(-560deg)}8%{transform:translate(-56vw,28vh)rotate(-640deg)}8.1%,to{transform:translateY(100vh)rotate(-640deg)}}@keyframes arc-red-medium-1{0%{transform:translate(0)rotate(0)}1%{transform:translate(5vw,-35vh)rotate(60deg)}2%{transform:translate(10vw,-58vh)rotate(120deg)}3%{transform:translate(15vw,-70vh)rotate(180deg)}4%{transform:translate(20vw,-75vh)rotate(240deg)}5%{transform:translate(25vw,-73vh)rotate(300deg)}6%{transform:translate(30vw,-62vh)rotate(360deg)}7%{transform:translate(35vw,-45vh)rotate(420deg)}8%{transform:translate(40vw,-22vh)rotate(480deg)}9%{transform:translate(45vw,-2vh)rotate(540deg)}10%{transform:translate(50vw,22vh)rotate(600deg)}10.1%,to{transform:translateY(100vh)rotate(600deg)}}@keyframes arc-red-medium-2{0%{transform:translate(0)rotate(0)}1%{transform:translate(-4vw,-32vh)rotate(-55deg)}2%{transform:translate(-8vw,-54vh)rotate(-110deg)}3%{transform:translate(-12vw,-68vh)rotate(-165deg)}4%{transform:translate(-16vw,-74vh)rotate(-220deg)}5%{transform:translate(-20vw,-72vh)rotate(-275deg)}6%{transform:translate(-24vw,-60vh)rotate(-330deg)}7%{transform:translate(-28vw,-42vh)rotate(-385deg)}8%{transform:translate(-32vw,-20vh)rotate(-440deg)}9%{transform:translate(-36vw,-1vh)rotate(-495deg)}10%{transform:translate(-40vw,20vh)rotate(-550deg)}10.1%,to{transform:translateY(100vh)rotate(-550deg)}}@keyframes arc-yellow-low-1{0%{transform:translate(0)rotate(0)}1%{transform:translate(3vw,-7vh)rotate(30deg)}2%{transform:translate(6vw,-12vh)rotate(60deg)}3%{transform:translate(9vw,-14vh)rotate(90deg)}4%{transform:translate(12vw,-15vh)rotate(120deg)}5%{transform:translate(15vw,-14vh)rotate(150deg)}6%{transform:translate(18vw,-11vh)rotate(180deg)}7%{transform:translate(21vw,-5vh)rotate(210deg)}8%{transform:translate(24vw,4vh)rotate(240deg)}8.1%,to{transform:translateY(100vh)rotate(240deg)}}@keyframes arc-yellow-low-2{0%{transform:translate(0)rotate(0)}1%{transform:translate(-2.5vw,-6vh)rotate(-25deg)}2%{transform:translate(-5vw,-11vh)rotate(-50deg)}3%{transform:translate(-7.5vw,-14vh)rotate(-75deg)}4%{transform:translate(-10vw,-15vh)rotate(-100deg)}5%{transform:translate(-12.5vw,-13vh)rotate(-125deg)}6%{transform:translate(-15vw,-10vh)rotate(-150deg)}7%{transform:translate(-17.5vw,-4vh)rotate(-175deg)}8%{transform:translate(-20vw,5vh)rotate(-200deg)}8.1%,to{transform:translateY(100vh)rotate(-200deg)}}.game-wrapper{z-index:1;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex;position:relative}.game{aspect-ratio:8.5/11;z-index:1;background: linear-gradient(to right, transparent 0, transparent 40px, var(--paper-margin) 40px, var(--paper-margin) 42px, transparent 42px),  repeating-linear-gradient(to bottom, transparent 0, transparent 31px, var(--paper-lines) 31px, var(--paper-lines) 32px),  var(--paper-bg);border-left:3px solid #d4c4a8;border-radius:0 4px 4px 0;width:auto;max-width:calc(77.2727vh - 2.31818rem);height:calc(100vh - 3rem);max-height:900px;padding:2rem 3rem 2rem 4rem;position:relative;overflow-y:auto;transform:rotate(-3deg);box-shadow:2px 0 #f5f0dc,4px 0 #ebe6d1,8px 8px 20px #00000026,inset 0 0 60px #fffae680}.game:before{content:"";background:repeating-linear-gradient(#0000 0 28px,#b8a888 28px 32px,#0000 32px 60px);border-radius:8px;width:16px;position:absolute;top:20px;bottom:20px;left:12px}.game-content{flex-direction:column;gap:1.5rem;width:100%;height:100%;display:flex;transform:rotate(1deg)}.header{border-bottom:2px dashed var(--color-light-gray);justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;padding-bottom:.75rem;display:flex}.header-left{flex-direction:column;gap:.25rem;display:flex}.header h1{font-family:var(--font-display);color:#2c4a1e;text-shadow:1px 1px #ffffff80;letter-spacing:.02em;margin:0;font-size:1.75rem;font-weight:700;line-height:1.1}.puzzle-info{font-family:var(--font-body);color:var(--pencil-gray);align-items:center;gap:.75rem;font-size:.95rem;display:flex}.puzzle-number{color:var(--color-primary);font-weight:600}.puzzle-date{opacity:.8}.header-buttons{align-items:center;gap:.5rem;display:flex}.archive-btn{border:2px solid var(--color-light-gray);width:40px;height:40px;color:var(--pencil-gray);cursor:pointer;background:#fffcf0cc;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.archive-btn:hover{background:var(--color-selected);border-color:var(--color-selected);transform:scale(1.05)}.help-btn{border:2px solid var(--color-light-gray);width:40px;height:40px;font-family:var(--font-display);color:var(--pencil-gray);cursor:pointer;background:#fffcf0cc;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;font-weight:700;transition:all .2s;display:flex}.help-btn:hover{background:var(--color-selected);border-color:var(--color-selected);transform:scale(1.05)}.music-btn{border:2px solid var(--color-light-gray);width:40px;height:40px;color:var(--pencil-gray);cursor:pointer;background:#fffcf0cc;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.music-btn:hover{background:var(--color-selected);border-color:var(--color-selected);transform:scale(1.05)}.loading{text-align:center;font-family:var(--font-display);color:var(--pencil-gray);padding:3rem;font-size:1.3rem}.equation-vertical{align-self:center;align-items:flex-end;gap:var(--tile-gap);flex-direction:column;padding:1rem 0;display:inline-flex}.equation-row{align-items:center;display:flex}.vertical-operator{font-family:var(--font-display);color:var(--pencil-gray);width:var(--operator-w);text-align:center;font-size:2rem;font-weight:700}.vertical-operator-spacer{width:var(--operator-w)}.equation-line{background:var(--pencil-gray);height:3px;margin:var(--tile-gap) 0;border-radius:1px;align-self:stretch}.word{gap:var(--tile-gap);display:flex}.letter-tile-spacer{width:var(--tile-w);height:var(--tile-h)}.letter-tile{width:var(--tile-w);height:var(--tile-h);border:2px solid var(--color-light-gray);cursor:pointer;background:#fffcf0e6;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-family:inherit;transition:all .15s;display:flex;box-shadow:1px 2px 4px #0000001a,inset 0 1px #fffc}.letter-tile:hover:not(.disabled):not(.selected):not(.selected-primary){border-color:var(--pencil-gray);transform:translateY(-2px);box-shadow:2px 4px 8px #00000026,inset 0 1px #fffc}.letter-tile.selected{background:#7eb8e026;border:2px dashed #7eb8e0cc}.letter-tile.selected:hover:not(.disabled){background:#7eb8e033;border-color:#7eb8e0e6}.letter-tile.selected.feedback-green{background:#5a9a544d;border-color:#5a9a54cc}.letter-tile.selected.feedback-green .letter,.letter-tile.selected.feedback-green .digit{color:#2d5a28}.letter-tile.selected.feedback-yellow{background:#c9a2274d;border-color:#c9a227cc}.letter-tile.selected.feedback-yellow .letter,.letter-tile.selected.feedback-yellow .digit{color:#735810}.letter-tile.selected.feedback-gray{background:#6b6b6b4d;border-color:#6b6b6bcc}.letter-tile.selected.feedback-gray .letter,.letter-tile.selected.feedback-gray .digit{color:#2c2c2c}.letter-tile.selected-primary{background:#5ba3d040;border-color:#5ba3d0;transform:translateY(-3px)scale(1.02);box-shadow:0 0 0 3px #5ba3d066,0 4px 12px #5ba3d04d}.letter-tile.selected-primary:hover:not(.disabled){background:#5ba3d04d;box-shadow:0 0 0 4px #5ba3d080,0 4px 12px #5ba3d059}.letter-tile.selected-primary.feedback-green{background:#5a9a5466;border-color:#5a9a54;box-shadow:0 0 0 3px #5a9a5480,0 4px 12px #5a9a5466}.letter-tile.selected-primary.feedback-green .letter,.letter-tile.selected-primary.feedback-green .digit{color:#1e3d1a}.letter-tile.selected-primary.feedback-yellow{background:#c9a22766;border-color:#c9a227;box-shadow:0 0 0 3px #c9a22780,0 4px 12px #c9a22766}.letter-tile.selected-primary.feedback-yellow .letter,.letter-tile.selected-primary.feedback-yellow .digit{color:#4d3a08}.letter-tile.selected-primary.feedback-gray{background:#6b6b6b66;border-color:#6b6b6b;box-shadow:0 0 0 3px #6b6b6b80,0 4px 12px #6b6b6b66}.letter-tile.selected-primary.feedback-gray .letter,.letter-tile.selected-primary.feedback-gray .digit{color:#1a1a1a}.letter-tile.disabled{cursor:default;opacity:.95}.letter-tile .letter{font-family:var(--font-display);color:var(--pencil-gray);font-size:1.6rem;font-weight:700;line-height:1}.letter-tile .digit{font-family:var(--font-body);color:#666;font-size:1rem;line-height:1}.feedback-green{background:var(--color-green);border-color:var(--color-green)}.feedback-green .letter,.feedback-green .digit{color:#fff}.feedback-yellow{background:var(--color-yellow);border-color:var(--color-yellow)}.feedback-yellow .letter,.feedback-yellow .digit{color:#fff}.feedback-gray{background:var(--color-gray);border-color:var(--color-gray)}.feedback-gray .letter,.feedback-gray .digit{color:#fff}.mapping-panel{border:1px dashed var(--color-light-gray);background:#fffcf080;border-radius:8px;flex-wrap:wrap;justify-content:center;gap:.5rem;padding:.5rem;display:flex}.mapping-row{border:2px solid var(--color-light-gray);cursor:pointer;font-family:var(--font-body);background:#fffcf0e6;border-radius:6px;justify-content:center;align-items:center;gap:.25rem;padding:.5rem .75rem;font-size:1.1rem;transition:all .15s;display:flex;box-shadow:1px 2px 3px #00000014}.mapping-row:hover:not(.disabled):not(.selected){border-color:var(--pencil-gray);transform:translateY(-1px)}.mapping-row.selected{border-color:var(--color-selected);background:#7eb8e026;transform:translateY(-1px);box-shadow:0 0 0 2px #7eb8e066}.mapping-row.selected:hover:not(.disabled){background:#7eb8e040;box-shadow:0 0 0 3px #7eb8e080}.mapping-row.disabled{cursor:default}.mapping-letter{font-family:var(--font-display);color:var(--pencil-gray);font-weight:700}.mapping-equals{color:var(--color-gray)}.mapping-digit{text-align:center;min-width:1ch;font-weight:600}.number-pad{border:2px solid var(--color-light-gray);background:#c8beaa4d;border-radius:12px;grid-template-columns:repeat(5,1fr);gap:.5rem;max-width:320px;margin:0 auto;padding:1rem;display:grid}.digit-btn{aspect-ratio:1;font-family:var(--font-display);border:2px solid var(--color-light-gray);color:var(--pencil-gray);cursor:pointer;background:#fffcf0f2;border-radius:8px;font-size:1.6rem;font-weight:700;transition:all .15s;box-shadow:0 3px #c5bfa8,0 4px 4px #0000001a}.digit-btn:hover:not(:disabled){background:#fff;transform:translateY(-2px);box-shadow:0 5px #c5bfa8,0 6px 6px #0000001f}.digit-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #c5bfa8,0 2px 2px #0000001a}.digit-btn:disabled{cursor:not-allowed;opacity:.4}.digit-btn.used{color:#999;background:#e8e4d8;box-shadow:0 2px #c5bfa8,0 3px 3px #00000014}.digit-btn.eliminated{background:var(--color-gray);color:#fff;border-color:var(--color-gray);box-shadow:0 2px #555,0 3px 3px #0000001a}.game-controls{justify-content:space-between;align-items:center;gap:1rem;display:flex}.guess-counter{font-family:var(--font-body);color:var(--pencil-gray);font-size:1.1rem}.control-buttons{gap:.75rem;display:flex}.btn{font-family:var(--font-display);cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:1.1rem;font-weight:600;transition:all .15s;box-shadow:0 3px 6px #0000001f}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 3px #3d7439,0 4px 6px #00000026}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 4px #3d7439,0 5px 8px #0000002e}.btn-primary:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #3d7439,0 2px 3px #0000001f}.btn-primary:disabled{cursor:not-allowed;background:#c5bfa8;box-shadow:0 2px #a8a090}.btn-secondary{color:var(--pencil-gray);border:2px solid var(--color-light-gray);background:#fffcf0f2;box-shadow:0 3px #c5bfa8,0 4px 6px #0000001a}.btn-secondary:hover{background:#fff;transform:translateY(-1px)}.guess-history{border-top:2px dashed var(--color-light-gray);margin-top:.5rem;padding-top:1rem}.guess-history h3{font-family:var(--font-display);color:var(--pencil-gray);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .75rem;font-size:1rem;font-weight:500}.guess-row{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.guess-number{font-family:var(--font-body);color:var(--pencil-gray);width:2rem;font-size:1rem}.guess-tiles{gap:4px;display:flex}.history-tile{width:var(--history-tile-w);height:var(--history-tile-h);border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:.9rem;display:flex;box-shadow:1px 2px 3px #0000001a}.history-letter{font-family:var(--font-display);font-size:1rem;font-weight:700}.history-digit{font-family:var(--font-body);opacity:.9;font-size:.8rem}.difficulty-selector{text-align:center;padding:2rem 0}.difficulty-selector h3{font-family:var(--font-display);color:var(--pencil-gray);margin:0 0 1.5rem;font-size:1.5rem}.difficulty-buttons{flex-direction:column;gap:.75rem;display:flex}.difficulty-btn{border:3px solid var(--color-light-gray);cursor:pointer;background:#fffcf0f2;border-radius:10px;flex-direction:column;align-items:center;gap:.25rem;padding:1.25rem 1.5rem;font-family:inherit;transition:all .2s;display:flex;box-shadow:0 4px #c5bfa8,0 5px 8px #0000001a}.difficulty-btn:hover{transform:translateY(-2px);box-shadow:0 6px #c5bfa8,0 7px 10px #0000001f}.difficulty-btn:active{transform:translateY(2px);box-shadow:0 2px #c5bfa8,0 3px 4px #0000001a}.difficulty-label{font-family:var(--font-display);font-size:1.3rem;font-weight:600}.difficulty-desc{font-family:var(--font-body);color:var(--pencil-gray);font-size:1rem}.difficulty-easy:hover{border-color:var(--color-green);background:#5a9a5414}.difficulty-medium:hover{border-color:var(--color-yellow);background:#c9a22714}.difficulty-hard:hover{border-color:var(--ball-red);background:#e6394614}.difficulty-btn.locked{opacity:.6;cursor:not-allowed;background:#c8c3b480}.difficulty-btn.locked:hover{border-color:var(--color-light-gray);background:#c8c3b480;transform:none;box-shadow:0 4px #c5bfa8,0 5px 8px #0000001a}.difficulty-btn.locked .lock-icon{font-size:.9em}.difficulty-btn.locked .difficulty-desc{font-size:.9rem;font-style:italic}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#3c321e99;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background: repeating-linear-gradient(to bottom, transparent 0, transparent 27px, var(--paper-lines) 27px, var(--paper-lines) 28px), var(--paper-bg);text-align:center;border:2px solid var(--color-light-gray);border-radius:8px;width:100%;max-width:400px;padding:2rem;box-shadow:0 10px 40px #0000004d,inset 0 0 40px #fffae64d}.modal h2{font-family:var(--font-display);color:var(--pencil-gray);margin:0 0 1rem;font-size:1.75rem}.win-message{font-family:var(--font-display);color:var(--color-green);margin-bottom:1.5rem;font-size:1.2rem}.lose-message{margin-bottom:1.5rem}.lose-message p{font-family:var(--font-body);margin:.5rem 0}.solution{font-family:var(--font-body);word-break:break-word;border:1px dashed var(--color-light-gray);background:#c8beaa4d;border-radius:6px;padding:.75rem;font-size:1.1rem}.modal-buttons{flex-direction:column;gap:.75rem;display:flex}.help-modal{text-align:left;max-width:450px}.help-modal h2{text-align:center}.help-content{margin-bottom:1.5rem}.help-content h3{font-family:var(--font-display);color:var(--pencil-gray);margin:1.25rem 0 .5rem;font-size:1.1rem}.help-content p{font-family:var(--font-body);margin:.5rem 0;font-size:1.05rem;line-height:1.5}.help-content ul{margin:.5rem 0;padding-left:1.25rem}.help-content li{font-family:var(--font-body);margin:.25rem 0;font-size:1.05rem;line-height:1.4}.example-puzzle{font-family:var(--font-display);text-align:center;border:1px dashed var(--color-light-gray);background:#c8beaa4d;border-radius:6px;padding:.75rem 1rem;font-size:1.2rem}.feedback-legend{flex-direction:column;gap:.5rem;display:flex}.legend-item{align-items:center;gap:.75rem;display:flex}.legend-tile{font-family:var(--font-display);color:#fff;border-radius:4px;padding:.3rem .6rem;font-size:1rem;font-weight:600}.help-modal .btn{width:100%}.archive-modal{max-width:480px}.archive-subtitle{font-family:var(--font-body);color:var(--pencil-gray);margin:-.5rem 0 1.25rem;font-size:1.05rem}.archive-grid{border:1px dashed var(--color-light-gray);background:#c8beaa33;border-radius:8px;grid-template-columns:repeat(5,1fr);gap:.5rem;max-height:320px;margin-bottom:1.5rem;padding:.5rem;display:grid;overflow-y:auto}.archive-puzzle{border:2px solid var(--color-light-gray);cursor:pointer;background:#fffcf0f2;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.5rem .25rem;font-family:inherit;transition:all .15s;display:flex;box-shadow:0 2px #c5bfa8}.archive-puzzle:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px #c5bfa8}.archive-puzzle.today{border-color:var(--color-primary);background:#5a9a541a}.archive-puzzle.current{border-color:var(--color-selected);box-shadow:0 0 0 2px #7eb8e066,0 2px #c5bfa8}.archive-puzzle-number{font-family:var(--font-display);color:var(--pencil-gray);font-size:.9rem;font-weight:600}.archive-puzzle-date{font-family:var(--font-body);color:var(--pencil-gray);opacity:.8;font-size:.75rem}@media (width<=600px){:root{--tile-w:44px;--tile-h:56px;--history-tile-w:36px;--history-tile-h:44px}.game-wrapper{padding:1rem}.game{aspect-ratio:auto;width:auto;max-width:none;height:auto;min-height:calc(100vh - 2rem);max-height:none;padding:1.5rem 2rem 1.5rem 3rem;transform:rotate(-2deg)}.game-content{gap:1rem;transform:rotate(1deg)}.letter-tile .letter{font-size:1.4rem}.letter-tile .digit{font-size:.9rem}.number-pad{max-width:280px;padding:.75rem}.digit-btn{font-size:1.4rem}}@media (width<=420px){:root{--tile-w:36px;--tile-h:46px;--tile-gap:4px;--operator-w:24px;--history-tile-w:30px;--history-tile-h:38px}.game{padding:1rem 1.5rem 1rem 2.5rem;transform:rotate(-1.5deg)}.game-content{gap:.75rem;transform:rotate(.75deg)}.game:before{width:12px;left:8px}.header h1{font-size:1.4rem}.vertical-operator{font-size:1.5rem}.letter-tile .letter{font-size:1.2rem}.letter-tile .digit{font-size:.8rem}.number-pad{gap:.4rem;max-width:240px;padding:.5rem}.digit-btn{font-size:1.2rem}.mapping-row{padding:.35rem .5rem;font-size:.95rem}.mapping-panel{gap:.35rem;padding:.35rem}.btn{padding:.6rem 1rem;font-size:1rem}.history-letter{font-size:.85rem}.history-digit{font-size:.7rem}.guess-tiles{gap:3px}}@media (width<=340px){:root{--tile-w:30px;--tile-h:40px;--tile-gap:3px;--operator-w:20px;--history-tile-w:26px;--history-tile-h:34px}.game{padding:.75rem 1rem .75rem 2rem;transform:rotate(-1deg)}.game-content{gap:.5rem;transform:rotate(.5deg)}.header h1{font-size:1.2rem}.puzzle-info{gap:.5rem;font-size:.8rem}.archive-btn,.help-btn,.music-btn{width:32px;height:32px}.help-btn{font-size:1.2rem}.vertical-operator{font-size:1.3rem}.letter-tile .letter{font-size:1rem}.letter-tile .digit{font-size:.7rem}.number-pad{gap:.3rem;max-width:200px;padding:.4rem}.digit-btn{font-size:1rem}.mapping-row{gap:.15rem;padding:.25rem .4rem;font-size:.85rem}.mapping-panel{gap:.25rem;padding:.25rem}.btn{padding:.5rem .75rem;font-size:.9rem}.guess-counter{font-size:.9rem}.guess-tiles{gap:2px}.history-letter{font-size:.75rem}.history-digit{font-size:.6rem}.guess-number{width:1.5rem;font-size:.85rem}}.win-glow{pointer-events:none;z-index:-1;border-radius:12px;position:absolute;inset:-20px}.win-glow-easy{background:radial-gradient(circle,#5a9a5426 0%,#0000 70%);animation:2s ease-in-out glow-pulse-easy}.win-glow-medium{background:radial-gradient(circle,#c9a22733 0%,#0000 70%);animation:2.5s ease-in-out glow-pulse-medium}.win-glow-hard{background:radial-gradient(circle,#e6394640 0%,#0000 70%);animation:3s ease-in-out glow-pulse-hard}@keyframes glow-pulse-easy{0%,to{opacity:0;transform:scale(.9)}50%{opacity:1;transform:scale(1.05)}}@keyframes glow-pulse-medium{0%,to{opacity:0;transform:scale(.85)}40%{opacity:1;transform:scale(1.1)}60%{opacity:1;transform:scale(1.08)}}@keyframes glow-pulse-hard{0%,to{opacity:0;transform:scale(.8)}30%{opacity:1;transform:scale(1.15)}50%{opacity:.9;transform:scale(1.12)}70%{opacity:1;transform:scale(1.1)}}.modal-win-easy{animation:.5s cubic-bezier(.68,-.55,.265,1.55) modal-bounce-easy}.modal-win-medium{animation:.6s cubic-bezier(.68,-.55,.265,1.55) modal-bounce-medium}.modal-win-hard{animation:.7s cubic-bezier(.68,-.55,.265,1.55) modal-bounce-hard}@keyframes modal-bounce-easy{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes modal-bounce-medium{0%{opacity:0;transform:scale(.7)rotate(-5deg)}50%{transform:scale(1.1)rotate(2deg)}70%{transform:scale(.95)rotate(-1deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes modal-bounce-hard{0%{opacity:0;transform:scale(.6)rotate(-10deg)}40%{transform:scale(1.15)rotate(5deg)}60%{transform:scale(.9)rotate(-3deg)}80%{transform:scale(1.05)rotate(1deg)}to{opacity:1;transform:scale(1)rotate(0)}}.win-shimmer{pointer-events:none;background:#fff0;border-radius:8px;position:absolute;inset:0}.win-shimmer-easy{animation:.8s ease-out .2s screen-pulse-easy}.win-shimmer-medium{animation:.9s ease-out .2s screen-pulse-medium}.win-shimmer-hard{animation:1s ease-out .2s screen-pulse-hard}@keyframes screen-pulse-easy{0%,to{background:#fff0}50%{background:#ffffff26}}@keyframes screen-pulse-medium{0%,to{background:#fff0}50%{background:#ffffff40}}@keyframes screen-pulse-hard{0%,to{background:#fff0}50%{background:#ffffff59}}.perfect-sparkles{pointer-events:none;position:absolute;inset:0;overflow:visible}.sparkle{opacity:0;background:radial-gradient(circle,gold 0%,#ffed4e 50%,#0000 100%);border-radius:50%;width:8px;height:8px;position:absolute;box-shadow:0 0 8px 2px #ffd70099}.sparkle-1{animation:1.5s ease-in-out .3s sparkle-twinkle;top:10%;left:10%}.sparkle-2{animation:1.5s ease-in-out .5s sparkle-twinkle;top:10%;right:10%}.sparkle-3{animation:1.5s ease-in-out .7s sparkle-twinkle;bottom:20%;left:15%}.sparkle-4{animation:1.5s ease-in-out .9s sparkle-twinkle;bottom:20%;right:15%}@keyframes sparkle-twinkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1.5)}}.celebration-balls{pointer-events:none;border-radius:8px;position:absolute;inset:0;overflow:hidden}.celebration-ball{border-radius:50%;width:30px;height:30px;position:absolute;bottom:-40px}.celebration-ball-1{background:radial-gradient(circle at 30% 30%, #5fd9a4, var(--ball-green) 50%, #1a6b4a);animation:2s ease-out celebration-bounce-1;left:20%;box-shadow:inset -4px -4px 10px #0000004d,inset 4px 4px 10px #ffffff4d}.celebration-ball-2{background:radial-gradient(circle at 30% 30%, #ff6b6b, var(--ball-red) 50%, #b82d3a);animation:2.2s ease-out .1s celebration-bounce-2;left:50%;box-shadow:inset -4px -4px 10px #0000004d,inset 4px 4px 10px #ffffff4d}.celebration-ball-3{background:radial-gradient(circle at 30% 30%, #ffcc80, var(--ball-yellow) 50%, #c47b30);animation:2.1s ease-out .2s celebration-bounce-3;right:20%;box-shadow:inset -4px -4px 10px #0000004d,inset 4px 4px 10px #ffffff4d}@keyframes celebration-bounce-1{0%{transform:translateY(0)rotate(0)}15%{transform:translateY(-180px)rotate(90deg)}30%{transform:translateY(-50px)rotate(180deg)}45%{transform:translateY(-120px)rotate(270deg)}60%{transform:translateY(-30px)rotate(360deg)}75%{transform:translateY(-60px)rotate(450deg)}90%{transform:translateY(-20px)rotate(520deg)}to{transform:translateY(-30px)rotate(540deg)}}@keyframes celebration-bounce-2{0%{transform:translateY(0)rotate(0)}12%{transform:translateY(-200px)rotate(-80deg)}28%{transform:translateY(-60px)rotate(-160deg)}42%{transform:translateY(-140px)rotate(-240deg)}58%{transform:translateY(-40px)rotate(-320deg)}72%{transform:translateY(-80px)rotate(-400deg)}88%{transform:translateY(-25px)rotate(-470deg)}to{transform:translateY(-35px)rotate(-520deg)}}@keyframes celebration-bounce-3{0%{transform:translateY(0)rotate(0)}14%{transform:translateY(-160px)rotate(70deg)}32%{transform:translateY(-45px)rotate(140deg)}48%{transform:translateY(-110px)rotate(210deg)}62%{transform:translateY(-35px)rotate(280deg)}76%{transform:translateY(-65px)rotate(350deg)}92%{transform:translateY(-22px)rotate(410deg)}to{transform:translateY(-28px)rotate(450deg)}}
