@keyframes shimmer{0%{background-position:200%0}to{background-position:-200%0}}@keyframes slideLeft{0%{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}@keyframes slideRight{0%{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}@keyframes borderGlow{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes swipeAnim{0%,to{transform:translateX(0)}50%{transform:translateX(6px)}}body{font-family:"Inter",sans-serif;background:linear-gradient(135deg,#0d1117 0,#161b22 50%,#0d1117 100%);color:#e5e7eb;height:100%;min-height:100svh}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#1f2937}::-webkit-scrollbar-thumb{background:#4b5563;border-radius:10px}.progress-bar-container{width:100%;height:4px;background:#1f2937;border-radius:9999px;overflow:hidden;margin-bottom:1rem}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#06b6d4,#3b82f6,#8b5cf6);border-radius:9999px;transition:width .4s ease;background-size:200% 100%;animation:shimmer 2s ease infinite}.flashcard-main-container{background:rgba(31,41,55,.5);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(75,85,99,.4);border-radius:1.5rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.5);padding:1.5rem;width:100%;min-height:480px;display:flex;flex-direction:column}@media (min-width:640px){.flashcard-main-container{padding:2rem}}.fc-toolbar{flex-wrap:wrap;justify-content:space-between;margin-bottom:1rem}.fc-toolbar,.fc-toolbar-left{display:flex;align-items:center;gap:.75rem}.fc-progress-text{font-size:.875rem;font-weight:600;color:#9ca3af;background:rgba(55,65,81,.5);padding:.375rem .875rem;border-radius:9999px;white-space:nowrap}.category-btn,.fc-shuffle-btn{display:flex;align-items:center;cursor:pointer;transition:all .25s ease}.fc-shuffle-btn{gap:.375rem;padding:.375rem .875rem;background:rgba(139,92,246,.15);border:1px solid rgba(139,92,246,.3);color:#a78bfa;border-radius:9999px;font-size:.8rem;font-weight:600}.fc-shuffle-btn:hover{background:rgba(139,92,246,.25);border-color:rgba(139,92,246,.5);transform:scale(1.05)}.fc-shuffle-btn svg{width:1rem;height:1rem}.category-btn{justify-content:space-between;gap:.5rem;padding:.5rem 1rem;background:rgba(55,65,81,.5);border:1px solid #4b5563;border-radius:.75rem;color:#fff;min-width:180px;font-size:.875rem}.category-btn:hover{background:rgba(75,85,99,.6);border-color:#22d3ee}.category-btn svg{width:1.125rem;height:1.125rem;color:#22d3ee;transition:transform .3s}.category-btn.open svg{transform:rotate(180deg)}.card-perspective-wrapper{perspective:1200px;flex-grow:1;display:flex;align-items:center;justify-content:center;position:relative;padding:0 2.5rem}@media (min-width:768px){.card-perspective-wrapper{padding:0 3.5rem}}.card-container{width:100%;height:260px;position:relative}@media (min-width:640px){.card-container{height:300px}}.card,.card-face{width:100%;height:100%}.card{transform-style:preserve-3d;transition:transform .7s cubic-bezier(.25,1,.5,1);cursor:pointer;position:relative}.card.is-flipped{transform:rotateY(180deg)}.card.slide-left{animation:slideLeft .35s ease}.card.slide-right{animation:slideRight .35s ease}.card-face{backface-visibility:hidden;-webkit-backface-visibility:hidden;position:absolute;top:0;left:0;border-radius:1rem;padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;overflow:hidden}.card-face-front{background:linear-gradient(145deg,rgba(17,24,39,.9),rgba(31,41,55,.8));border:2px solid transparent;background-clip:padding-box;position:relative}.card-face-front::before{content:"";position:absolute;inset:-2px;border-radius:calc(1rem + 2px);background:linear-gradient(135deg,#06b6d4,#3b82f6,#8b5cf6,#06b6d4);background-size:300% 300%;animation:borderGlow 4s ease infinite;z-index:-1}.card-face-back{transform:rotateY(180deg);background:linear-gradient(145deg,rgba(31,41,55,.95),rgba(17,24,39,.9));border:2px solid #374151}.card-category-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.75px;padding:.25rem .875rem;border-radius:9999px}.card-category-badge-front{background:linear-gradient(135deg,rgba(6,182,212,.2),rgba(59,130,246,.2));color:#67e8f9;border:1px solid rgba(6,182,212,.3)}.card-category-badge-back{background:rgba(75,85,99,.4);color:#9ca3af;border:1px solid rgba(75,85,99,.5)}.card-question-text{font-size:1.15rem;font-weight:600;color:#f9fafb;line-height:1.5;margin-top:.75rem}@media (min-width:640px){.card-question-text{font-size:1.35rem}}.card-answer-area{margin-top:.75rem;color:#d1d5db;font-size:.95rem;line-height:1.7;overflow-y:auto;max-height:150px;text-align:left;padding:0 .5rem;width:100%}@media (min-width:640px){.card-answer-area{font-size:1.05rem;max-height:190px}}.card-hint-text{font-size:.75rem;color:#6b7280;font-weight:500;display:flex;align-items:center;gap:.375rem}.card-hint-text svg{width:.875rem;height:.875rem;opacity:.7}.nav-arrow-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:10;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);border-radius:9999px;cursor:pointer;transition:all .3s ease;color:#22d3ee}.nav-arrow-btn:hover:not(:disabled){background:rgba(255,255,255,.12);border-color:#22d3ee;box-shadow:0 0 15px rgba(34,211,238,.2);transform:translateY(-50%) scale(1.1)}.nav-arrow-btn:disabled{opacity:0;cursor:not-allowed;pointer-events:none}.nav-arrow-btn svg{width:1.25rem;height:1.25rem}.nav-arrow-prev{left:0}.nav-arrow-next{right:0}@media (min-width:768px){.nav-arrow-btn{width:3rem;height:3rem}.nav-arrow-prev{left:-.5rem}.nav-arrow-next{right:-.5rem}.nav-arrow-btn svg{width:1.5rem;height:1.5rem}}.keyboard-hints{display:none;justify-content:center;gap:1.5rem;margin-top:1rem;font-size:.75rem;color:#6b7280}@media (min-width:768px){.keyboard-hints{display:flex}}.category-modal,.kbd{justify-content:center}.kbd{display:inline-flex;align-items:center;min-width:1.5rem;height:1.5rem;padding:0 .375rem;background:rgba(55,65,81,.5);border:1px solid #4b5563;border-radius:.375rem;font-size:.7rem;font-weight:600;color:#9ca3af;font-family:"Inter",monospace}.category-modal{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.category-modal.open{opacity:1;visibility:visible}.category-modal-backdrop{position:absolute;inset:0;background-color:rgba(0,0,0,.6);backdrop-filter:blur(4px)}.category-modal-content{position:relative;width:100%;max-width:500px;max-height:70vh;background:rgba(31,41,55,.95);backdrop-filter:blur(16px);border-top-left-radius:1.5rem;border-top-right-radius:1.5rem;border:1px solid #374151;transform:translateY(100%);transition:transform .3s ease-out;overflow:hidden;display:flex;flex-direction:column}.category-modal.open .category-modal-content{transform:translateY(0)}.category-modal-header{padding:1rem 1.5rem;border-bottom:1px solid #374151;display:flex;justify-content:space-between;align-items:center}.category-modal-header h3{font-size:1.125rem;font-weight:600;color:#22d3ee}.category-modal-close{background:0 0;border:0;color:#9ca3af;cursor:pointer;padding:.5rem;border-radius:.5rem;transition:all .2s}.category-modal-close:hover{background-color:#374151;color:#fff}.category-options{overflow-y:auto;padding:.5rem}.category-option{width:100%;padding:.875rem 1.25rem;text-align:left;background:0 0;border:0;color:#e5e7eb;cursor:pointer;border-radius:.75rem;transition:all .2s;display:flex;align-items:center;justify-content:space-between;font-size:.95rem}.category-option:hover{background-color:rgba(55,65,81,.5)}.category-option.selected{background-color:rgba(34,211,238,.1);color:#22d3ee}.category-option .check-icon{width:1.25rem;height:1.25rem;opacity:0}.category-option.selected .check-icon{opacity:1}.category-option .cat-count{font-size:.75rem;color:#6b7280;margin-left:.5rem}.category-option.selected .cat-count{color:rgba(34,211,238,.6)}@media (min-width:640px){.category-modal{align-items:center}.category-modal-content{border-radius:1rem;max-height:60vh}}.train-select-card{position:relative;background:rgba(31,41,55,.6);backdrop-filter:blur(12px);border:1px solid rgba(75,85,99,.4);border-radius:1.25rem;overflow:hidden;cursor:pointer;transition:all .35s ease}.train-select-card:hover{transform:translateY(-6px);border-color:#3b82f6;box-shadow:0 20px 40px rgba(59,130,246,.2),0 0 20px rgba(59,130,246,.1)}.train-select-card img{width:100%;height:10rem;object-fit:cover;transition:transform .4s ease}.train-select-card:hover img{transform:scale(1.05)}.train-card-body{padding:1.25rem}.train-card-title{font-size:1.25rem;font-weight:700;color:#fff;text-align:center}.swipe-hint,.train-card-count{display:flex;align-items:center;justify-content:center;gap:.375rem;margin-top:.5rem;font-size:.8rem;color:#9ca3af}.train-card-count svg{width:1rem;height:1rem;color:#06b6d4}.swipe-hint{margin-top:.75rem;font-size:.75rem;color:#4b5563}@media (min-width:768px){.swipe-hint{display:none}}.swipe-hint svg{width:1rem;height:1rem;animation:swipeAnim 2s ease-in-out infinite}