.alphabet-tracker{display:grid;grid-template-columns:repeat(auto-fit,minmax(36px,1fr));gap:.45rem;padding:1.2rem 1.4rem 1.6rem;border-radius:999px;background:rgba(255,255,255,.5);box-shadow:inset 0 0 0 1px #ffffff59,0 .8rem 1.6rem #d1b44824;margin-top:2.5rem}.alphabet-tracker__letter{border:none;background:rgba(255,255,255,.75);color:#5d6470;font-weight:700;font-size:1rem;border-radius:16px;height:2.6rem;display:flex;align-items:center;justify-content:center;transition:transform .2s ease,box-shadow .3s ease,background .3s ease;cursor:pointer}.alphabet-tracker__letter--pending:hover{transform:translateY(-2px)}.alphabet-tracker__letter--current{background:linear-gradient(135deg,#ffcf9f,#ff9eb0);color:#3f1f3f;box-shadow:0 .6rem 1.4rem #ff9eb059;transform:scale(1.1)}.alphabet-tracker__letter--done{background:#c7f2a6;color:#2f5a3d}.alphabet-tracker__letter--pending{background:rgba(255,255,255,.7)}@media (max-width: 720px){.alphabet-tracker{grid-template-columns:repeat(8,1fr);padding:1rem}.alphabet-tracker__letter{font-size:.9rem;height:2.3rem}}.captured-pieces{display:flex;align-items:center;gap:.5rem;min-height:3rem;padding:.5rem;background:rgba(0,0,0,.15);border-radius:.75rem}.captured-pieces__list{display:flex;flex-wrap:wrap;gap:.25rem}.captured-piece-item{position:relative;width:2.5rem;height:2.5rem;animation:piece-captured .3s ease-out}.captured-piece-img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(1px 1px 2px rgba(0,0,0,.3));opacity:.9}.captured-piece-value{position:absolute;bottom:-2px;right:-2px;background:#333;color:#fff;font-size:.75rem;font-weight:700;width:1.1rem;height:1.1rem;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.3)}.captured-pieces__total{margin-left:auto;padding:.25rem .5rem}.captured-pieces__total-value{font-size:1.5rem;font-weight:700;color:gold;text-shadow:0 2px 4px rgba(0,0,0,.3)}@keyframes piece-captured{0%{transform:scale(1.5);opacity:0}50%{transform:scale(.9)}to{transform:scale(1);opacity:.9}}.confetti-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:60}.confetti-piece{position:absolute;top:-10vh;width:.75rem;height:1.6rem;border-radius:.2rem;opacity:0;animation-name:confetti-fall;animation-timing-function:ease-in;animation-iteration-count:infinite}@keyframes confetti-fall{0%{transform:translateZ(0) rotate(0) scale(var(--confetti-scale, 1));opacity:0}10%{opacity:1}to{transform:translate3d(0,110vh,0) rotate(360deg) scale(var(--confetti-scale, 1));opacity:0}}.chess-piece{width:85%;height:85%;object-fit:contain;pointer-events:none;filter:drop-shadow(1px 2px 2px rgba(0,0,0,.3));transition:transform .1s ease}.chess-square:hover .chess-piece{transform:scale(1.05)}.chess-square--selected .chess-piece{transform:scale(1.1)}.chess-piece--animate{animation:slide-in .4s ease-out}@keyframes slide-in{0%{transform:translate(var(--from-x, 0),var(--from-y, 0))}70%{transform:translate(0)}80%{transform:translateY(-8%) scale(1.05)}90%{transform:translate(0) scale(.98)}to{transform:translate(0) scale(1)}}.chess-board{display:grid;grid-template-columns:repeat(8,1fr);gap:0;width:min(90vw,90vh,560px);aspect-ratio:1;border:4px solid #5d4e37;border-radius:8px;overflow:hidden;box-shadow:0 8px 32px #0000004d;outline:none}.chess-board:focus-visible{box-shadow:0 8px 32px #0000004d,0 0 0 3px #4a90d9}.chess-square{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:none;padding:4px;cursor:pointer;position:relative;transition:background-color .15s ease}.chess-square--light{background-color:#f0d9b5}.chess-square--dark{background-color:#b58863}.chess-square--selected{background-color:#829769!important}.chess-square--valid-move{background-color:#acd490!important;animation:pulse-valid 1s ease-in-out infinite}.chess-square--valid-move:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:3px solid rgba(255,255,255,.6);border-radius:50%;pointer-events:none}.chess-square--check{background-color:#e74c3c!important;animation:pulse-check .5s ease-in-out infinite}.chess-square--last-move:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(205,210,106,.5);pointer-events:none;z-index:0}.chess-square--focused{outline:3px solid #4a90d9;outline-offset:-3px;z-index:1}.chess-square--hint{box-shadow:inset 0 0 0 4px #27ae60;animation:pulse-hint 1s ease-in-out infinite}@keyframes pulse-hint{0%,to{box-shadow:inset 0 0 0 4px #27ae60,0 0 10px #27ae6080}50%{box-shadow:inset 0 0 0 4px #2ecc71,0 0 20px #2ecc71cc}}.chess-square--danger{box-shadow:inset 0 0 0 3px #e74c3c99}.chess-square--danger:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:2px dashed rgba(231,76,60,.5);border-radius:4px;pointer-events:none;animation:danger-pulse 1.5s ease-in-out infinite;z-index:1}@keyframes danger-pulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes pulse-valid{0%,to{opacity:1}50%{opacity:.85}}@keyframes pulse-check{0%,to{box-shadow:inset 0 0 20px #e74c3ccc}50%{box-shadow:inset 0 0 30px #e74c3c}}.chess-square:hover:not(:disabled){filter:brightness(1.1)}.chess-square:disabled{cursor:default}.capture-poof{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;pointer-events:none;z-index:10}.capture-star{position:absolute;font-size:1.5rem;animation:star-burst .6s ease-out forwards;pointer-events:none}.capture-star:nth-child(1){top:10%;left:50%;color:gold;animation-delay:0s}.capture-star:nth-child(2){top:50%;left:10%;color:#ff6b6b;animation-delay:.05s}.capture-star:nth-child(3){top:50%;right:10%;color:#4ecdc4;animation-delay:.1s}.capture-star:nth-child(4){bottom:10%;left:50%;color:#a78bfa;animation-delay:.15s}.capture-star:nth-child(5){top:50%;left:50%;color:#fff;font-size:2.5rem;animation-delay:0s;transform:translate(-50%,-50%)}@keyframes star-burst{0%{transform:scale(0) rotate(0);opacity:1}50%{transform:scale(1.5) rotate(180deg);opacity:1}to{transform:scale(2) rotate(360deg) translateY(-20px);opacity:0}}.chess-promotion-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:100}.chess-promotion{background:white;padding:2rem;border-radius:1rem;text-align:center;animation:pop-in .3s ease}.chess-promotion__title{font-size:1.5rem;color:#333;margin-bottom:1.5rem}.chess-promotion__options{display:flex;gap:1rem}.chess-promotion__option{display:flex;flex-direction:column;align-items:center;padding:1rem;background:#f0d9b5;border:3px solid #b58863;border-radius:.5rem;cursor:pointer;transition:transform .2s,box-shadow .2s;min-width:80px}.chess-promotion__option:hover{transform:scale(1.1);box-shadow:0 4px 12px #0003}.chess-promotion__option .chess-piece{width:60px;height:60px}.chess-promotion__label{font-size:.875rem;font-weight:600;margin-top:.5rem;color:#333}.chess-tutorial-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.chess-tutorial{background:white;border-radius:1.5rem;padding:2rem;max-width:400px;width:100%;text-align:center;animation:pop-in .3s ease}.chess-tutorial__title{font-size:1.75rem;color:#333;margin:0 0 1.5rem}.chess-tutorial__steps{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.chess-tutorial__step{display:flex;align-items:center;gap:1rem;text-align:left;background:#f8f9fa;padding:1rem;border-radius:.75rem}.chess-tutorial__step-number{width:2.5rem;height:2.5rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.25rem;flex-shrink:0}.chess-tutorial__step-content{color:#444;font-size:1rem;line-height:1.4}.chess-tutorial__tips{background:#e8f5e9;padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1.5rem}.chess-tutorial__tips p{margin:0;color:#2e7d32;font-size:.9rem}.chess-tutorial__button{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;padding:1rem 2.5rem;font-size:1.25rem;font-weight:600;border-radius:2rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.chess-tutorial__button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.chess-victory-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:100}.chess-victory-modal{background:white;padding:3rem;border-radius:1.5rem;text-align:center;animation:pop-in .3s ease}.chess-victory-modal__emoji{font-size:4rem;display:block;margin-bottom:1rem}.chess-victory-modal__title{font-size:2rem;color:#333;margin-bottom:2rem}.chess-victory-modal__buttons{display:flex;gap:1rem;justify-content:center}@keyframes pop-in{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.game-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:rgba(255,255,255,.5);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:20px;margin-bottom:1rem;gap:1rem;flex-wrap:wrap;width:100%;max-width:700px}.game-header__stats{display:flex;gap:.75rem}.game-header__back{padding:.6rem 1rem;border:none;border-radius:999px;background:rgba(255,255,255,.7);font-size:.95rem;font-weight:600;color:#25364a;cursor:pointer;transition:transform .2s ease,background-color .2s ease}.game-header__back:hover{background:rgba(255,255,255,.95);transform:translate(-3px)}.game-header__back:focus{outline:3px solid #f27f5a;outline-offset:2px}.game-header__title{font-size:clamp(1.2rem,4vw,1.6rem);font-weight:700;margin:0;color:#25364a;flex:1;text-align:center}.game-header__moves{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem;background:rgba(255,255,255,.7);border-radius:16px;min-width:70px}.game-header__moves-label{font-size:.75rem;font-weight:600;color:#5a6b7d;text-transform:uppercase;letter-spacing:.05em}.game-header__moves-count{font-size:1.5rem;font-weight:700;color:#f27f5a;line-height:1}.game-header__turn{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem;border-radius:16px;min-width:60px;transition:background-color .3s ease}.game-header__turn--p1{background:linear-gradient(135deg,#a7e7fc 0%,#c9f299 100%)}.game-header__turn--p2{background:linear-gradient(135deg,#ffd3b4 0%,#ff9eb0 100%)}.game-header__turn-label{font-size:.7rem;font-weight:600;color:#5a6b7d;text-transform:uppercase;letter-spacing:.05em}.game-header__turn-player{font-size:1.3rem;font-weight:700;color:#25364a;line-height:1}@media (max-width: 400px){.game-header{padding:.75rem 1rem}.game-header__back{padding:.5rem .75rem;font-size:.85rem}}.twinkling-lights{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}.light{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--light-color);box-shadow:0 0 10px var(--light-color),0 0 20px var(--light-color),0 0 30px var(--light-color);animation:twinkle 1s ease-in-out infinite}.light--top{top:10px;left:var(--light-position)}.light--left{left:10px;top:var(--light-position)}.light--right{right:10px;top:var(--light-position)}@keyframes twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.8)}}@media (prefers-reduced-motion: reduce){.light{animation:none;opacity:.8}}.chess-christmas{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.chess-christmas__snow{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:0}.chess-christmas__flake{position:absolute;top:-20px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff 0%,rgba(255,255,255,.9) 40%,rgba(220,240,255,.7) 100%);animation:chess-snow-fall linear infinite;color:#fff;text-shadow:0 0 3px rgba(255,255,255,.8)}.chess-christmas__flake--symbol{background:none;border-radius:0}@keyframes chess-snow-fall{0%{transform:translateY(0) translate(0) rotate(0)}to{transform:translateY(calc(100vh + 40px)) translate(var(--drift, 0px)) rotate(360deg)}}.chess-christmas__side-decor{position:fixed;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:1rem;z-index:2}.chess-christmas__side-decor--left{left:1rem}.chess-christmas__side-decor--right{right:1rem}.chess-christmas__tree-container{position:relative;display:flex;flex-direction:column;align-items:center}.chess-christmas__tree-large{font-size:5rem;display:block;animation:tree-glow 2s ease-in-out infinite;filter:drop-shadow(0 0 15px rgba(0,200,0,.6))}.chess-christmas__tree-star{position:absolute;top:-.5rem;font-size:1.5rem;animation:star-twinkle 1s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(255,215,0,.9))}.chess-christmas__snowman-large{font-size:4rem;display:block;animation:snowman-happy 3s ease-in-out infinite;filter:drop-shadow(2px 2px 4px rgba(0,0,0,.3))}.chess-christmas__gifts{font-size:3.5rem;display:block;animation:gift-wiggle 2s ease-in-out infinite;filter:drop-shadow(2px 2px 4px rgba(0,0,0,.3))}@keyframes tree-glow{0%,to{filter:drop-shadow(0 0 15px rgba(0,200,0,.6));transform:scale(1)}50%{filter:drop-shadow(0 0 25px rgba(0,255,0,.8)) drop-shadow(0 0 40px rgba(255,0,0,.4));transform:scale(1.02)}}@keyframes star-twinkle{0%,to{opacity:1;transform:scale(1) rotate(0)}50%{opacity:.7;transform:scale(1.2) rotate(15deg)}}@keyframes snowman-happy{0%,to{transform:rotate(-2deg)}25%{transform:rotate(2deg) translateY(-3px)}50%{transform:rotate(-2deg)}75%{transform:rotate(2deg) translateY(-3px)}}@keyframes gift-wiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@media (max-width: 700px){.chess-christmas__side-decor--left{left:.25rem}.chess-christmas__side-decor--right{right:.25rem}.chess-christmas__tree-large{font-size:3rem}.chess-christmas__tree-star{font-size:1rem;top:-.25rem}.chess-christmas__snowman-large{font-size:2.5rem}.chess-christmas__gifts{font-size:2rem}}@media (max-width: 500px){.chess-christmas__side-decor{display:none}}@media (prefers-reduced-motion: reduce){.chess-christmas__flake,.chess-christmas__tree-large,.chess-christmas__tree-star,.chess-christmas__snowman-large,.chess-christmas__gifts,.chess-christmas__pile-flake{animation:none}.chess-christmas__snow-pile:after{animation:none;opacity:.6}}.dynamic-snow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:5}.dynamic-snow__flake{position:absolute;background:radial-gradient(circle,rgba(255,255,255,1) 0%,rgba(255,255,255,.8) 40%,rgba(255,255,255,0) 70%);border-radius:50%;will-change:transform,top,left}.dynamic-snow__flake--symbol{background:none;color:#fff;text-shadow:0 0 3px rgba(255,255,255,.8)}.dynamic-snow__accumulated{position:absolute;background:radial-gradient(circle,rgba(255,255,255,.95) 0%,rgba(255,255,255,.7) 50%,rgba(255,255,255,0) 70%);border-radius:50%;opacity:.9}.dynamic-snow__accumulated--symbol{background:none;color:#fff;text-shadow:0 0 2px rgba(255,255,255,.6);opacity:.85}.theme-selector-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:150}.theme-selector{background:white;padding:2rem;border-radius:1rem;max-width:400px;width:90%}.theme-selector__title{text-align:center;margin-bottom:1.5rem;color:#333}.theme-selector__options{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.theme-option{display:flex;flex-direction:column;align-items:center;padding:1rem;border:3px solid transparent;border-radius:.75rem;cursor:pointer;transition:transform .2s,border-color .2s}.theme-option:hover{transform:scale(1.05)}.theme-option--selected{border-color:gold}.theme-option__emoji{font-size:2rem;margin-bottom:.5rem}.theme-option__preview{display:grid;grid-template-columns:1fr 1fr;width:40px;height:20px;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.theme-option__preview span{width:100%;height:100%}.theme-option__label{font-size:.75rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}@media (max-width: 360px){.theme-selector__options{grid-template-columns:repeat(2,1fr)}}.move-celebration{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:200;pointer-events:none}.move-celebration__main{font-size:6rem;display:block;animation:celebration-pop .6s ease-out,celebration-bounce .4s ease-in-out .5s}.move-celebration__star{position:absolute;top:50%;left:50%;font-size:2rem;color:gold;animation:star-fly-out .8s ease-out forwards;animation-delay:var(--delay)}.move-celebration--brilliant .move-celebration__main{animation:celebration-pop .6s ease-out,golden-glow 1s ease-in-out infinite}.move-celebration--brilliant .move-celebration__star{color:gold}.move-celebration--good .move-celebration__main{animation:celebration-pop .6s ease-out,celebration-bounce .4s ease-in-out .5s,green-glow 1s ease-in-out infinite}.move-celebration--good .move-celebration__star{color:#27ae60}.move-celebration--check .move-celebration__main,.move-celebration--check .move-celebration__star{color:#a78bfa}@keyframes celebration-pop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.3);opacity:1}to{transform:scale(1);opacity:1}}@keyframes golden-glow{0%,to{filter:drop-shadow(0 0 10px rgba(255,215,0,.8))}50%{filter:drop-shadow(0 0 30px rgba(255,215,0,1))}}@keyframes star-fly-out{0%{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(0) scale(0);opacity:1}to{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-120px) scale(1.5);opacity:0}}@keyframes celebration-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes green-glow{0%,to{filter:drop-shadow(0 0 10px rgba(39,174,96,.8))}50%{filter:drop-shadow(0 0 25px rgba(39,174,96,1))}}.checkmate-animation{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:200;pointer-events:none}.checkmate-animation__king{width:120px;height:120px;animation:king-fall 1.5s ease-in forwards}.checkmate-animation__impact{position:absolute;bottom:-20px;left:50%;transform:translate(-50%) scale(0);font-size:4rem;animation:impact-appear .3s ease-out 1.3s forwards}@keyframes king-fall{0%{transform:translateY(0) rotate(0);opacity:1}30%{transform:translateY(-50px) rotate(-15deg)}to{transform:translateY(100px) rotate(90deg);opacity:.8}}@keyframes impact-appear{0%{transform:translate(-50%) scale(0)}50%{transform:translate(-50%) scale(1.3)}to{transform:translate(-50%) scale(1)}}.chess-game{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:1rem;gap:1rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.chess-game__board-wrapper{position:relative}.chess-game__status{display:flex;align-items:center;gap:.75rem;font-size:1.5rem;font-weight:600;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3);padding:.5rem 1.5rem;background:rgba(255,255,255,.2);border-radius:2rem;transition:background-color .3s ease}.chess-game__status--white{background:rgba(255,255,255,.35)}.chess-game__status--black{background:rgba(50,50,50,.5)}.chess-game__turn-indicator{width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid rgba(255,255,255,.6);box-shadow:0 2px 4px #0000004d;transition:background-color .3s ease}.chess-game__status--white .chess-game__turn-indicator{background:linear-gradient(135deg,#fff 0%,#e0e0e0 100%)}.chess-game__status--black .chess-game__turn-indicator{background:linear-gradient(135deg,#444 0%,#222 100%)}.chess-game__captured{display:flex;gap:.25rem;min-height:2rem;padding:.25rem .5rem}.captured-piece{font-size:1.5rem;opacity:.8}.chess-game__controls{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.chess-btn{padding:.75rem 1.25rem;font-size:1rem;font-weight:600;border:none;border-radius:.5rem;cursor:pointer;transition:transform .1s,box-shadow .1s}.chess-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #0003}.chess-btn:disabled{opacity:.5;cursor:not-allowed}.chess-btn--undo{background:#f39c12;color:#fff}.chess-btn--flip{background:#3498db;color:#fff}.chess-btn--pieces{background:#9b59b6;color:#fff}.chess-btn--hint{background:#16a085;color:#fff}.chess-btn--primary{background:#27ae60;color:#fff}.chess-btn--secondary{background:#95a5a6;color:#fff}.chess-btn--theme{background:#e67e22;color:#fff}.chess-btn--danger{background:#7f8c8d;color:#fff}.chess-btn--active{background:#e74c3c;box-shadow:inset 0 2px 4px #0003}.chess-mode-select,.chess-difficulty-select{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.chess-mode-select__back,.chess-difficulty-select__back{position:absolute;top:1rem;left:1rem;background:rgba(255,255,255,.2);border:none;color:#fff;padding:.5rem 1rem;border-radius:.5rem;cursor:pointer;font-size:1rem}.chess-mode-select__back:hover,.chess-difficulty-select__back:hover{background:rgba(255,255,255,.3)}.chess-mode-select__title,.chess-difficulty-select__title{font-size:2rem;color:#fff;margin-bottom:2rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}.chess-mode-select__options,.chess-difficulty-select__options{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center}.chess-mode-card,.difficulty-card{display:flex;flex-direction:column;align-items:center;padding:2rem;background:white;border:none;border-radius:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s;min-width:180px}.chess-mode-card:hover,.difficulty-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0003}.chess-mode-card__icon{font-size:3rem;margin-bottom:.5rem}.chess-mode-card__label,.difficulty-card__label{font-size:1.25rem;font-weight:600;color:#333}.chess-mode-card__info,.difficulty-card__info{font-size:.875rem;color:#666;margin-top:.25rem}.difficulty-card--easy{border-top:4px solid #27ae60}.difficulty-card--medium{border-top:4px solid #f39c12}.difficulty-card--hard{border-top:4px solid #e74c3c}.chess-difficulty-select__advanced{margin-top:2rem;color:#fff;width:100%;max-width:400px}.chess-difficulty-select__advanced summary{cursor:pointer;text-align:center;opacity:.8}.chess-difficulty-select__advanced summary:hover{opacity:1}.skill-slider{margin-top:1rem;padding:1.5rem;background:rgba(255,255,255,.1);border-radius:.5rem}.skill-slider label{display:block;margin-bottom:.5rem;font-weight:600}.skill-slider input[type=range]{width:100%;margin:.5rem 0}.skill-slider__labels{display:flex;justify-content:space-between;font-size:.75rem;opacity:.8;margin-bottom:1rem}.chess-handicap-select{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.chess-handicap-select__back{position:absolute;top:1rem;left:1rem;background:rgba(255,255,255,.2);border:none;color:#fff;padding:.5rem 1rem;border-radius:.5rem;cursor:pointer;font-size:1rem}.chess-handicap-select__back:hover{background:rgba(255,255,255,.3)}.chess-handicap-select__title{font-size:2rem;color:#fff;margin-bottom:.5rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}.chess-handicap-select__subtitle{font-size:1rem;color:#fffc;margin-bottom:2rem}.chess-handicap-select__options{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;max-width:600px;width:100%}.handicap-card{display:flex;flex-direction:column;align-items:center;padding:1.5rem 1rem;background:white;border:none;border-radius:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.handicap-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0003}.handicap-card--default{border:3px solid #667eea}.handicap-card__emoji{font-size:2.5rem;margin-bottom:.5rem}.handicap-card__label{font-size:1rem;font-weight:600;color:#333}.handicap-card__info{font-size:.75rem;color:#666;margin-top:.25rem;text-align:center}.chess-side-select{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.chess-side-select__back{position:absolute;top:1rem;left:1rem;background:rgba(255,255,255,.2);border:none;color:#fff;padding:.5rem 1rem;border-radius:.5rem;cursor:pointer;font-size:1rem}.chess-side-select__back:hover{background:rgba(255,255,255,.3)}.chess-side-select__title{font-size:2rem;color:#fff;margin-bottom:2rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}.chess-side-select__options{display:flex;gap:2rem}.side-card{display:flex;flex-direction:column;align-items:center;padding:2rem;border:none;border-radius:1.5rem;cursor:pointer;transition:transform .2s,box-shadow .2s;min-width:150px}.side-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #0000004d}.side-card--white{background:linear-gradient(135deg,#f5f5f5 0%,#e0e0e0 100%);color:#333}.side-card--black{background:linear-gradient(135deg,#424242 0%,#212121 100%);color:#fff}.side-card__piece{font-size:4rem;margin-bottom:1rem}.side-card__label{font-size:1.5rem;font-weight:700}.side-card__info{font-size:.875rem;opacity:.8;margin-top:.5rem}.chess-btn--hint-toggle{background:#7f8c8d;color:#fff}.chess-btn--hint-toggle.chess-btn--active{background:#4caf50;color:#fff}.feedback-panel{display:flex;align-items:center;gap:.75rem;padding:1rem 1.4rem;border-radius:18px;background:rgba(255,255,255,.7);color:#314155;font-size:1.05rem;font-weight:600;box-shadow:0 .8rem 1.6rem #e0b44826;transition:background .3s ease,transform .3s ease}.feedback-panel--correct{background:rgba(199,242,166,.75);color:#235030;transform:translateY(-2px)}.feedback-panel--incorrect{background:rgba(255,209,209,.8);color:#8a2b3c}.feedback-panel__icon{font-size:1.5rem}.input-visualizer{display:grid;place-items:center;gap:.35rem;padding:1rem 1.5rem;border-radius:20px;background:rgba(255,255,255,.6);box-shadow:0 .8rem 1.4rem #d1b44829;text-align:center;max-width:220px}.input-visualizer__key{width:3.3rem;height:3.3rem;border-radius:12px;background:#fff4d9;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:#f68f45;box-shadow:inset 0 -2px #00000014}.input-visualizer__hint{margin:0;font-size:.85rem;color:#486070}.input-visualizer__expected{font-size:1rem;font-weight:600;color:#475c69e6}.input-visualizer--correct{background:rgba(199,242,166,.75)}.input-visualizer--incorrect{background:rgba(255,209,209,.74)}.letter-card{background:rgba(255,255,255,.68);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:32px;padding:clamp(1.8rem,4vw,2.6rem);box-shadow:0 1.4rem 3rem #ccb4422e;position:relative;display:flex;justify-content:center}.letter-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.35),transparent 60%),radial-gradient(circle at 80% 15%,rgba(255,197,217,.25),transparent 55%);z-index:-1}.letter-card--success{box-shadow:0 1.6rem 3.4rem #7cc8a459}.letter-card__content{display:grid;gap:clamp(1.4rem,3vw,2.2rem);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:center}.letter-card__tile{display:grid;gap:.65rem;justify-items:center;padding:1.2rem 1.6rem 1.6rem;border-radius:32px;background:linear-gradient(145deg,rgba(255,235,180,.9),rgba(255,186,200,.8));box-shadow:inset 0 0 0 1px #ffdba5a6,0 1rem 2.3rem #ffb58a4d}.letter-card__letters{display:inline-flex;align-items:flex-end;gap:clamp(.5rem,1.6vw,1rem)}.letter-card__uppercase{font-size:clamp(4rem,7vw,6.2rem);margin:0;font-weight:700;color:#ff8ba7}.letter-card__lowercase{font-size:clamp(3.4rem,6.3vw,5.4rem);margin:0;color:#f29c38;font-weight:600}.letter-card__word{font-size:clamp(1.2rem,2vw,1.6rem);font-weight:700;color:#305c6d;margin:0}.letter-card__figure{margin:0;position:relative;display:inline-block;border-radius:28px;overflow:hidden;box-shadow:0 1rem 2.2rem #ffa6a740;background:rgba(255,255,255,.9);min-height:220px}.letter-card__figure img{display:block;width:min(280px,50vw);height:min(280px,50vw);object-fit:cover}@media (max-width: 720px){.letter-card{padding:1.6rem}.letter-card__content{grid-template-columns:1fr}}.locale-toggle{display:inline-flex;padding:.25rem;border-radius:999px;background:rgba(255,255,255,.6);gap:.25rem;box-shadow:0 .6rem 1.2rem #deb2332e}.locale-toggle button{border:none;border-radius:999px;padding:.45rem .9rem;background:transparent;color:#374151;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.locale-toggle button:hover{background:rgba(255,255,255,.8)}.locale-toggle button.active{background:#ffb4c2;color:#3f1f3f;box-shadow:0 .45rem .8rem #ff869e4d}.main-menu{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:3rem;background:radial-gradient(circle at 30% 20%,rgba(255,207,159,.6) 0%,transparent 50%),radial-gradient(circle at 70% 80%,rgba(255,158,176,.5) 0%,transparent 50%),radial-gradient(circle at 50% 50%,rgba(167,231,252,.4) 0%,transparent 60%),#fcefb4;animation:menuDrift 20s ease-in-out infinite}@keyframes menuDrift{0%,to{background-position:0% 0%,100% 100%,50% 50%}50%{background-position:100% 100%,0% 0%,50% 50%}}.main-menu__header{text-align:center}.main-menu__title{font-size:clamp(2.5rem,8vw,4rem);font-weight:700;margin:0;color:#25364a;text-shadow:3px 3px 0 rgba(242,127,90,.3);animation:titleBounce 2s ease-in-out infinite}@keyframes titleBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.main-menu__subtitle{font-size:clamp(1.1rem,3vw,1.5rem);margin:.5rem 0 0;color:#5a6b7d}.main-menu__games{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;max-width:900px}.game-card{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;width:clamp(260px,40vw,320px);border:none;border-radius:32px;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;position:relative;overflow:hidden}.game-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:inherit;border-radius:inherit;z-index:-1}.game-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px #00000026}.game-card:focus{outline:4px solid #f27f5a;outline-offset:4px}.game-card:active{transform:translateY(-4px) scale(1.01)}.game-card--alphabet{background:linear-gradient(135deg,#a7e7fc 0%,#c9f299 100%);box-shadow:0 10px 30px #a7e7fc66}.game-card--memory{background:linear-gradient(135deg,#ffd3b4 0%,#ff9eb0 100%);box-shadow:0 10px 30px #ff9eb066}.game-card--chess{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);box-shadow:0 10px 30px #764ba266}.game-card--chess .game-card__title,.game-card--chess .game-card__description{color:#fff}.game-card--math{background:linear-gradient(135deg,#a8edea 0%,#fed6e3 100%);box-shadow:0 10px 30px #a8edea66}.game-card--math:hover{background:linear-gradient(135deg,#96e6e0 0%,#fcc4d4 100%)}.game-card__icon{width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0000001a}.game-card__letters{font-size:2.5rem;font-weight:700;color:#25364a;letter-spacing:-2px}.game-card__emojis{font-size:2.5rem;font-family:var(--emoji-font)}.game-card__title{font-size:1.5rem;font-weight:700;margin:0;color:#25364a}.game-card__description{font-size:1rem;margin:0;color:#5a6b7d;text-align:center;line-height:1.4}@media (max-width: 600px){.main-menu{padding:1.5rem;gap:2rem}.main-menu__games{flex-direction:column}.game-card{width:100%;max-width:320px}}.math-game{min-height:100vh;background:linear-gradient(135deg,#a8edea 0%,#fed6e3 100%);padding:1rem;display:flex;flex-direction:column}.math-game__select{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:1rem}.math-game__select-title{font-size:clamp(1.5rem,5vw,2.5rem);color:#2d3748;margin:0}.math-game__operation-toggle{display:flex;gap:1rem}.math-game__op-btn{padding:.75rem 1.5rem;font-size:1.1rem;border:3px solid #4a5568;border-radius:1rem;background:white;cursor:pointer;transition:all .2s}.math-game__op-btn--active{background:#48bb78;border-color:#38a169;color:#fff}.math-game__difficulties{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.math-game__diff-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 2rem;background:white;border:3px solid #e2e8f0;border-radius:1.5rem;cursor:pointer;transition:all .2s;min-width:120px}.math-game__diff-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000001a;border-color:#48bb78}.math-game__diff-icon{font-size:2.5rem}.math-game__diff-label{font-size:1.3rem;font-weight:600;color:#2d3748}.math-game__diff-info{font-size:.9rem;color:#718096}.math-game__toggle-sub{margin-top:1rem;padding:.5rem 1rem;background:transparent;border:2px dashed #a0aec0;border-radius:.5rem;color:#718096;cursor:pointer;font-size:.9rem}.math-game__toggle-sub:hover{border-color:#4a5568;color:#4a5568}.math-game__progress{text-align:center;font-size:1.1rem;color:#4a5568;margin:.5rem 0 1rem}.math-game__problem{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;padding:1rem;margin:1rem 0}.math-game__operand{display:flex;flex-direction:column;align-items:center;gap:.5rem;background:white;padding:1rem;border-radius:1.5rem;box-shadow:0 4px 12px #0000001a;min-width:80px}.math-game__objects{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem;max-width:150px}.math-game__number{font-size:clamp(3rem,8vw,5rem);font-weight:700;color:#2d3748;line-height:1}.math-game__object{font-size:clamp(1rem,3vw,1.5rem);animation:popIn .3s ease-out}@keyframes popIn{0%{transform:scale(0);opacity:0}70%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.math-game__operator,.math-game__equals{font-size:clamp(2rem,5vw,3rem);font-weight:700;color:#4a5568}.math-game__answer-box{display:flex;align-items:center;justify-content:center;background:white;border:4px dashed #a0aec0;border-radius:1.5rem;min-width:80px;min-height:80px;padding:1rem}.math-game__answer-placeholder{font-size:clamp(2rem,5vw,3rem);color:#a0aec0}.math-game__input{text-align:center;padding:2rem;color:#718096}.math-game__victory{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;text-align:center}.math-game__victory-title{font-size:clamp(2rem,6vw,3rem);color:#2d3748;margin:0}.math-game__victory-score{font-size:1.3rem;color:#4a5568}.math-game__victory-actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.math-game__victory-actions button{padding:1rem 2rem;font-size:1.2rem;background:#48bb78;color:#fff;border:none;border-radius:1rem;cursor:pointer;transition:all .2s}.math-game__victory-actions button:hover{background:#38a169;transform:translateY(-2px)}.math-game__victory-actions button:last-child{background:#4299e1}.math-game__victory-actions button:last-child:hover{background:#3182ce}.math-game__number-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:400px;margin:0 auto;padding:1rem}.math-game__num-btn{width:60px;height:60px;font-size:1.5rem;font-weight:700;background:white;border:3px solid #e2e8f0;border-radius:1rem;cursor:pointer;transition:all .15s;color:#2d3748}.math-game__num-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 6px 15px #00000026;border-color:#48bb78;background:#f0fff4}.math-game__num-btn:active:not(:disabled){transform:translateY(0)}.math-game__num-btn:disabled{opacity:.5;cursor:not-allowed}.math-game__input-hint{text-align:center;color:#718096;font-size:.9rem;margin-top:.5rem}.math-game__actions{display:flex;gap:1rem;justify-content:center;margin-top:.5rem}.math-game__clear-btn,.math-game__submit-btn{padding:.75rem 1.5rem;font-size:1.2rem;font-weight:600;border:none;border-radius:1rem;cursor:pointer;transition:all .2s}.math-game__clear-btn{background:#e2e8f0;color:#4a5568}.math-game__clear-btn:hover:not(:disabled){background:#cbd5e0}.math-game__submit-btn{background:#48bb78;color:#fff}.math-game__submit-btn:hover:not(:disabled){background:#38a169;transform:translateY(-2px)}.math-game__clear-btn:disabled,.math-game__submit-btn:disabled{opacity:.5;cursor:not-allowed}.math-game__answer-value{font-size:clamp(2rem,5vw,3rem);font-weight:700;color:#2d3748}.math-game__answer-box--correct{border-color:#48bb78;background:#f0fff4;animation:pulse-correct .5s ease}.math-game__answer-box--incorrect{border-color:#fc8181;background:#fff5f5}@keyframes pulse-correct{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.math-game__problem--shake{animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(10px)}}.math-game__feedback{text-align:center;font-size:1.5rem;font-weight:700;padding:.5rem;animation:fadeIn .3s ease}.math-game__feedback--correct{color:#38a169}.math-game__feedback--incorrect{color:#e53e3e}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.math-game--correct{background:linear-gradient(135deg,#c6f6d5 0%,#9ae6b4 100%)}.math-game--incorrect{background:linear-gradient(135deg,#fed7d7 0%,#feb2b2 100%)}@media (max-width: 600px){.math-game__problem{flex-direction:column;gap:.75rem}.math-game__operand{flex-direction:row;gap:1rem;padding:.75rem 1.5rem}.math-game__objects{max-width:120px}.math-game__object{font-size:1.5rem}.math-game__number-buttons{gap:.4rem}.math-game__num-btn{width:50px;height:50px;font-size:1.3rem}.math-game__diff-card{min-width:100px;padding:1rem 1.5rem}}@media (prefers-reduced-motion: reduce){.math-game__object,.math-game__answer-box--correct,.math-game__problem--shake,.math-game__feedback{animation:none}}.difficulty-select{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:5rem 2rem 2rem;gap:2rem;background:radial-gradient(circle at 30% 20%,rgba(255,207,159,.6) 0%,transparent 50%),radial-gradient(circle at 70% 80%,rgba(255,158,176,.5) 0%,transparent 50%),radial-gradient(circle at 50% 50%,rgba(167,231,252,.4) 0%,transparent 60%),#fcefb4}.difficulty-select__back{position:absolute;top:1.5rem;left:1.5rem;padding:.75rem 1.25rem;border:none;border-radius:999px;background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:1rem;font-weight:600;color:#25364a;cursor:pointer;transition:transform .2s ease,background-color .2s ease;z-index:10}.difficulty-select__back:hover{background:rgba(255,255,255,.9);transform:translate(-4px)}.difficulty-select__back:focus{outline:3px solid #f27f5a;outline-offset:2px}.difficulty-select__header{text-align:center}.difficulty-select__title{font-size:clamp(2rem,6vw,3rem);font-weight:700;margin:0;color:#25364a;text-shadow:2px 2px 0 rgba(255,255,255,.5)}.difficulty-select__subtitle{font-size:clamp(1rem,3vw,1.3rem);margin:.5rem 0 0;color:#5a6b7d}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;width:100%;max-width:1000px}.theme-card{background:var(--theme-bg);border-radius:24px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;box-shadow:0 8px 32px #00000026;transition:transform .3s ease,box-shadow .3s ease}.theme-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0003}.theme-card__header{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding-bottom:1rem;border-bottom:2px solid rgba(255,255,255,.3)}.theme-card__icon{font-size:3rem;font-family:var(--emoji-font);filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.theme-card__name{font-size:1.5rem;font-weight:700;color:var(--theme-text);text-shadow:1px 1px 2px rgba(0,0,0,.1)}.theme-card__desc{font-size:.9rem;color:var(--theme-text);opacity:.8}.theme-card__difficulties{display:flex;gap:.5rem;justify-content:center}.theme-card__difficulty{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem .5rem;border:none;border-radius:16px;background:rgba(255,255,255,.25);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;transition:transform .2s ease,background-color .2s ease}.theme-card__difficulty:hover{background:rgba(255,255,255,.5);transform:scale(1.05)}.theme-card__difficulty:focus{outline:3px solid var(--theme-accent);outline-offset:2px}.theme-card__difficulty:active{transform:scale(.98)}.theme-card__difficulty-icon{font-size:1.5rem;font-family:var(--emoji-font)}.theme-card__difficulty-label{font-size:.85rem;font-weight:600;color:var(--theme-text)}@media (max-width: 600px){.theme-grid{grid-template-columns:1fr;max-width:320px}.theme-card__difficulties{flex-wrap:wrap}}.memory-card{width:100%;aspect-ratio:1;perspective:1000px;background:transparent;border:none;cursor:pointer;padding:0;transition:transform .2s ease}.memory-card:hover:not(:disabled){transform:scale(1.05)}.memory-card:focus{outline:4px solid #f27f5a;outline-offset:4px;border-radius:20px}.memory-card:disabled{cursor:default;opacity:1;filter:none}.memory-card__inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s ease;border-radius:20px}.memory-card--flipped .memory-card__inner,.memory-card--matched .memory-card__inner{transform:rotateY(180deg)}.memory-card__front,.memory-card__back{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;backface-visibility:hidden;border-radius:20px;box-shadow:0 6px 20px #00000026}.memory-card__back{background:var(--card-back-gradient, linear-gradient(135deg, #9b5de5 0%, #00bbf9 100%))}.memory-card__pattern{font-size:clamp(2rem,6vw,4rem);opacity:.7;font-family:var(--emoji-font)}.memory-card__front{background:var(--card-front-gradient, linear-gradient(135deg, #ffffff 0%, #f8f8f8 100%));transform:rotateY(180deg)}.memory-card__emoji{font-size:clamp(2.5rem,8vw,5rem);line-height:1;font-family:var(--emoji-font)}.memory-card--matched .memory-card__front{background:linear-gradient(135deg,#fef9c3 0%,#fde68a 100%);box-shadow:0 0 30px #ffd70099,0 6px 20px #0000001a;animation:matchPulse .6s ease}@keyframes matchPulse{0%{transform:rotateY(180deg) scale(1)}50%{transform:rotateY(180deg) scale(1.1)}to{transform:rotateY(180deg) scale(1)}}.memory-card--shake .memory-card__inner{animation:cardShake .4s ease}@keyframes cardShake{0%,to{transform:rotateY(180deg) translate(0)}20%{transform:rotateY(180deg) translate(-8px)}40%{transform:rotateY(180deg) translate(8px)}60%{transform:rotateY(180deg) translate(-6px)}80%{transform:rotateY(180deg) translate(6px)}}@media (prefers-reduced-motion: reduce){.memory-card__inner{transition:none}.memory-card--flipped .memory-card__inner,.memory-card--matched .memory-card__inner{transform:none}.memory-card--flipped .memory-card__back,.memory-card--matched .memory-card__back{visibility:hidden}.memory-card--flipped .memory-card__front,.memory-card--matched .memory-card__front{transform:none}.memory-card__front{transform:none;visibility:hidden}.memory-card--flipped .memory-card__front,.memory-card--matched .memory-card__front{visibility:visible}}.sparkle{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;align-items:center;justify-content:center}.sparkle__particle{position:absolute;width:var(--size);height:var(--size);background:var(--color);border-radius:50%;animation:sparkleOut .6s ease-out var(--delay) forwards;opacity:0}@keyframes sparkleOut{0%{opacity:1;transform:rotate(var(--angle)) translate(0) scale(1)}50%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translate(60px) scale(0)}}@media (prefers-reduced-motion: reduce){.sparkle__particle{animation:none;opacity:0}}.floating-bubbles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:1}.bubble{position:absolute;bottom:-10vh;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.8),rgba(255,255,255,.2));border:2px solid rgba(255,255,255,.4);animation:float-up linear infinite}@keyframes float-up{0%{transform:translateY(0) translate(0) scale(1);opacity:.6}25%{transform:translateY(-25vh) translate(15px) scale(1.05)}50%{transform:translateY(-50vh) translate(-10px) scale(.95)}75%{transform:translateY(-75vh) translate(10px) scale(1)}to{transform:translateY(-110vh) translate(0) scale(.9);opacity:0}}@media (prefers-reduced-motion: reduce){.bubble{animation:none;bottom:50%;opacity:.3}}.snow{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:1}.snow__flake{position:absolute;top:-20px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,1) 0%,rgba(255,255,255,.8) 30%,rgba(255,255,255,.4) 60%,rgba(255,255,255,0) 100%);box-shadow:0 0 4px #fff9,0 0 8px #ffffff4d;animation:snowfall linear infinite}@keyframes snowfall{0%{transform:translateY(0) translate(0)}25%{transform:translateY(25vh) translate(calc(var(--drift, 0px) * .5))}50%{transform:translateY(50vh) translate(var(--drift, 0px))}75%{transform:translateY(75vh) translate(calc(var(--drift, 0px) * .5))}to{transform:translateY(calc(100vh + 20px)) translate(0)}}@media (prefers-reduced-motion: reduce){.snow__flake{animation:none;top:50%;opacity:.3}}.spring-petals{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:1}.petal{position:absolute;top:-5vh;animation:petal-fall linear infinite}@keyframes petal-fall{0%{transform:translateY(0) rotate(0) translate(0);opacity:.8}25%{transform:translateY(25vh) rotate(45deg) translate(20px)}50%{transform:translateY(50vh) rotate(90deg) translate(-15px)}75%{transform:translateY(75vh) rotate(135deg) translate(10px)}to{transform:translateY(105vh) rotate(180deg) translate(0);opacity:.4}}@media (prefers-reduced-motion: reduce){.petal{animation:none;top:50%;opacity:.5}}.victory-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(37,54,74,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:100;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.victory-modal{background:linear-gradient(135deg,#ffffff 0%,#fef9e7 100%);border-radius:32px;padding:2.5rem;text-align:center;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d;animation:modalPop .4s ease}@keyframes modalPop{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.victory-modal__icon{font-size:4rem;line-height:1;margin-bottom:1rem;animation:iconBounce .6s ease infinite;font-family:var(--emoji-font)}@keyframes iconBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.victory-modal__title{font-size:2rem;font-weight:700;margin:0 0 .5rem;color:#25364a}.victory-modal__message{font-size:1.1rem;color:#5a6b7d;margin:0 0 1rem}.victory-modal__message strong{color:var(--accent-color, #f27f5a);font-weight:700}.victory-modal__stars{font-size:2rem;margin-bottom:1.5rem;font-family:var(--emoji-font)}.victory-modal__actions{display:flex;flex-direction:column;gap:.75rem}.victory-modal__button{padding:1rem 2rem;border:none;border-radius:999px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.victory-modal__button:hover{transform:translateY(-2px)}.victory-modal__button:focus{outline:3px solid #f27f5a;outline-offset:3px}.victory-modal__button--primary{background:linear-gradient(135deg,var(--accent-color, #f27f5a) 0%,#ff9eb0 100%);color:#fff;box-shadow:0 6px 20px #f27f5a66}.victory-modal__button--primary:hover{box-shadow:0 10px 30px #f27f5a80}.victory-modal__button--secondary{background:rgba(37,54,74,.1);color:#25364a}.victory-modal__button--secondary:hover{background:rgba(37,54,74,.15)}.victory-modal__scores{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1rem 0 1.5rem}.victory-modal__player{flex:1;padding:1rem;border-radius:16px;background:rgba(0,0,0,.05);transition:transform .3s ease}.victory-modal__player--winner{background:linear-gradient(135deg,#fef9c3 0%,#fde68a 100%);box-shadow:0 0 20px #ffd70066;transform:scale(1.05)}.victory-modal__player-label{font-size:.9rem;font-weight:600;color:#5a6b7d;margin-bottom:.25rem}.victory-modal__player-count{font-size:2.5rem;font-weight:700;color:#25364a;line-height:1}.victory-modal__player--winner .victory-modal__player-count{color:var(--accent-color, #f27f5a)}.victory-modal__player-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem;margin-top:.5rem}.victory-modal__vs{font-size:1rem;font-weight:600;color:#999}.victory-modal__solo-stats{margin:1rem 0}.victory-modal__collected{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:1rem;padding:1rem;background:rgba(0,0,0,.03);border-radius:16px}.victory-modal__emoji{font-size:1.8rem;font-family:var(--emoji-font);display:inline-block;opacity:0;animation:emojiPop .4s ease forwards;animation-delay:var(--delay, 0s)}@keyframes emojiPop{0%{opacity:0;transform:scale(0) rotate(-20deg)}50%{transform:scale(1.3) rotate(10deg)}to{opacity:1;transform:scale(1) rotate(0)}}@media (prefers-reduced-motion: reduce){.victory-modal__icon{animation:none}.victory-modal__emoji{animation:none;opacity:1}}.memory-game{min-height:100vh;padding:1rem;background:var(--theme-bg);display:flex;flex-direction:column;align-items:center;position:relative}.memory-game__layout{display:flex;align-items:flex-start;justify-content:center;gap:1rem;width:100%;max-width:1000px;position:relative;z-index:5}.memory-game__grid{display:grid;grid-template-columns:repeat(var(--columns, 4),1fr);gap:clamp(.5rem,2vw,1rem);width:100%;max-width:min(95vw,700px);padding:1rem}.memory-game__cell{position:relative}.memory-game__cell--collected{visibility:hidden}.card-pile{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;min-width:100px;transition:transform .3s ease,opacity .3s ease}.card-pile--left{order:-1}.card-pile--right{order:1}.card-pile--solo{position:absolute;left:1rem;top:50%;transform:translateY(-50%)}.card-pile--active{transform:scale(1.08);background:rgba(255,255,255,.6);border-radius:20px;box-shadow:0 0 30px #f27f5a80,0 0 60px #f27f5a4d;animation:pulseGlow 1.5s ease-in-out infinite}@keyframes pulseGlow{0%,to{box-shadow:0 0 30px #f27f5a80,0 0 60px #f27f5a4d}50%{box-shadow:0 0 40px #f27f5ab3,0 0 80px #f27f5a66}}.card-pile--active .card-pile__label{color:#f27f5a;font-weight:700;font-size:1.1rem}.card-pile--active .card-pile__label:after{content:" - YOUR TURN!";display:block;font-size:.8rem;animation:bounce .6s ease infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.card-pile__label{font-size:.9rem;font-weight:600;color:var(--theme-text, #5a6b7d);text-align:center}.card-pile__score{font-size:2rem;font-weight:700;color:var(--theme-text, #25364a);line-height:1}.card-pile__stack{position:relative;width:80px;height:100px;margin-top:.5rem}.card-pile__card{position:absolute;width:80px;height:80px;background:linear-gradient(135deg,#fef9c3 0%,#fde68a 100%);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:2.2rem;font-family:var(--emoji-font);box-shadow:0 3px 12px #0003;transform:translateY(calc(var(--stack-index) * -5px)) rotate(calc(var(--stack-index) * 3deg - 6deg));animation:cardLand .5s ease-out}@keyframes cardLand{0%{transform:translateY(-50px) scale(.5);opacity:0}to{transform:translateY(calc(var(--stack-index) * -4px)) rotate(calc(var(--stack-index) * 3deg - 6deg));opacity:1}}.player-select{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:2.5rem;background:var(--theme-bg);position:relative}.player-select__back{position:absolute;top:1.5rem;left:1.5rem;padding:.75rem 1.25rem;border:none;border-radius:999px;background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:1rem;font-weight:600;color:#25364a;cursor:pointer;transition:transform .2s ease,background-color .2s ease;z-index:10}.player-select__back:hover{background:rgba(255,255,255,.9);transform:translate(-4px)}.player-select__back:focus{outline:3px solid #f27f5a;outline-offset:2px}.player-select__header{text-align:center;position:relative;z-index:5}.player-select__title{font-size:clamp(1.8rem,5vw,2.5rem);font-weight:700;margin:0;color:var(--theme-text, #25364a)}.player-select__options{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;position:relative;z-index:5}.player-card{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 3rem;min-width:180px;border:none;border-radius:24px;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease}.player-card:hover{transform:translateY(-6px) scale(1.05)}.player-card:focus{outline:4px solid #f27f5a;outline-offset:4px}.player-card--solo{background:linear-gradient(135deg,#a7e7fc 0%,#c9f299 100%);box-shadow:0 8px 24px #a7e7fc80}.player-card--duo{background:linear-gradient(135deg,#ffd3b4 0%,#ff9eb0 100%);box-shadow:0 8px 24px #ff9eb080}.player-card__icon{font-size:3rem;font-family:var(--emoji-font)}.player-card__label{font-size:1.5rem;font-weight:700;color:#25364a}.player-card__info{font-size:1rem;color:#5a6b7d}@media (max-width: 700px){.memory-game__layout{flex-direction:column;align-items:center}.card-pile--left,.card-pile--right{order:0;flex-direction:row;gap:1rem}.card-pile__stack{width:50px;height:50px}.card-pile__card{width:50px;height:50px;font-size:1.4rem}}@media (max-width: 500px){.memory-game__grid{max-width:95vw;gap:.4rem;padding:.5rem}.card-pile--solo{position:static;transform:none}}@media (min-width: 800px){.memory-game__grid{max-width:750px;gap:1rem}}@media (min-width: 1200px){.memory-game__grid{max-width:900px;gap:1.2rem}}.speaker-button{border:none;background:rgba(255,255,255,.8);border-radius:16px;font-size:1.8rem;padding:.35rem .8rem;cursor:pointer;box-shadow:0 .8rem 1.4rem #ffae6147;transition:transform .2s ease,box-shadow .2s ease}.speaker-button:hover{transform:translateY(-2px)}.speaker-button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.app-shell{min-height:100vh;padding:2.5rem clamp(1rem,3vw,3.75rem) 4.5rem;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.app-shell:before,.app-shell:after{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background-image:radial-gradient(circle at 10% 20%,rgba(255,235,180,.5) 0,transparent 45%),radial-gradient(circle at 80% 40%,rgba(255,184,196,.45) 0,transparent 50%),radial-gradient(circle at 45% 90%,rgba(218,240,255,.4) 0,transparent 50%);animation:drift 18s ease-in-out infinite;z-index:0}.app-shell:after{animation-direction:reverse;opacity:.6}@keyframes drift{0%{transform:translate3d(-4%,-2%,0) scale(1.05)}50%{transform:translate3d(3%,3%,0) scale(1.08)}to{transform:translate3d(-4%,-2%,0) scale(1.05)}}.app-shell__content{position:relative;z-index:1;width:min(1120px,96vw);display:grid;gap:2rem}.app-shell__header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.app-shell__title{margin:0;font-size:clamp(2.4rem,6vw,3.75rem);font-weight:700;color:#f27f5a;text-shadow:0 .3rem .7rem rgba(255,163,104,.3)}.app-shell__tagline{margin:0;font-size:1.1rem;color:#414758d9}.app-shell__topline{display:flex;flex-direction:column;gap:.35rem}.app-shell__panels{display:grid;gap:1.6rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:stretch}.celebration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:rgba(255,247,219,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:40}.celebration-card{background:#ffffff;padding:2.4rem;border-radius:32px;text-align:center;box-shadow:0 1.8rem 3.2rem #ffad784d;max-width:420px;display:grid;gap:1.2rem}.celebration-card h2{margin:0;font-size:2.2rem;color:#f27f5a}.celebration-card p{margin:0;color:#374151}.celebration-card button{border:none;border-radius:18px;padding:.85rem 1.6rem;background:linear-gradient(135deg,#ffbc9a,#ff7fa4);color:#3f1f3f;font-weight:700;font-size:1.05rem;cursor:pointer;box-shadow:0 1rem 2rem #ff7e9466}@media (max-width: 640px){.app-shell{padding:1.5rem 1.1rem 3.5rem}.app-shell__panels{grid-template-columns:1fr}}:root{font-family:Quicksand,Segoe UI,sans-serif;color:#25364a;background-color:#fcefb4;line-height:1.5;font-weight:500;--emoji-font: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla", sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh}button{font-family:inherit}#root{min-height:100vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
