:root{--color-orange-50:#fff7ed;--color-orange-100:#ffedd5;--color-orange-200:#fed7aa;--color-orange-300:#fdba74;--color-orange-400:#fb923c;--color-orange-500:#f97316;--color-orange-600:#ea580c;--color-orange-700:#c2410c;--color-amber-300:#fcd34d;--color-amber-400:#fbbf24;--color-amber-500:#f59e0b;--color-black:#0a0a0a;--color-gray-950:#0f0f0f;--color-gray-900:#171717;--color-gray-800:#1f1f1f;--color-gray-700:#2a2a2a;--color-gray-600:#3a3a3a;--color-gray-500:#525252;--color-gray-400:#737373;--color-gray-300:#a3a3a3;--color-gray-200:#d4d4d4;--color-gray-100:#e5e5e5;--color-white:#fafafa;--color-blue-400:#60a5fa;--color-blue-500:#3b82f6;--color-purple-400:#c084fc;--color-purple-500:#a855f7;--color-green-400:#4ade80;--color-green-500:#22c55e;--color-success:#22c55e;--color-error:#ef4444;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 8px 30px #0009;--shadow-glow-orange:0 0 20px #f973164d;--shadow-glow-amber:0 0 20px #fbbf2433;--transition-fast:150ms ease;--transition-base:250ms ease;--transition-slow:400ms ease;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace}*,:after,:before{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{background-color:#0a0a0a;background-color:var(--color-black);color:#d4d4d4;color:var(--color-gray-200);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-sans);margin:0;min-height:100vh;overflow-x:hidden;padding:0}body:before{background:radial-gradient(ellipse 80% 60% at 50% 0,#f9731612 0,#0000 70%),radial-gradient(ellipse 60% 50% at 80% 100%,#fbbf240d 0,#0000 70%);content:"";inset:0;pointer-events:none;position:fixed;z-index:0}code{font-family:JetBrains Mono,Fira Code,monospace;font-family:var(--font-mono)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#0f0f0f;background:var(--color-gray-950)}::-webkit-scrollbar-thumb{background:#3a3a3a;background:var(--color-gray-600);border-radius:9999px;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:#f97316;background:var(--color-orange-500)}::selection{background:#f973164d;color:#fafafa;color:var(--color-white)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse-glow{0%,to{box-shadow:0 0 8px #f973164d}50%{box-shadow:0 0 20px #f9731680}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes dotPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes confettiFall{0%{opacity:1;transform:translateY(0) translateX(0) rotate(0deg)}to{opacity:0;transform:translateY(100vh) translateX(0) rotate(2turn);transform:translateY(100vh) translateX(var(--drift,0)) rotate(2turn)}}@keyframes cardFlip{0%{transform:rotateY(0deg)}to{transform:rotateY(180deg)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes letterPop{0%{opacity:0;transform:scale(0) rotate(-15deg)}60%{transform:scale(1.15) rotate(3deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes scoreCount{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.app-shell{align-items:center;display:flex;flex-direction:column;min-height:100vh;padding:16px 12px 80px;position:relative;z-index:1}.app-container{animation:fadeInUp .5s ease both;max-width:540px;width:100%}.brand-bar{align-items:center;background:linear-gradient(135deg,var(--color-gray-900) 0,var(--color-gray-800) 100%);border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);display:flex;justify-content:space-between;margin-bottom:20px;overflow:hidden;padding:14px 20px;position:relative}.brand-bar:after{animation:shimmer 3s linear infinite;background:linear-gradient(90deg,var(--color-orange-500),var(--color-amber-400),var(--color-orange-500));background-size:200% 100%;bottom:0;content:"";height:2px;left:0;position:absolute;right:0}.brand-link{align-items:center;display:flex}.brand-logo{border-radius:var(--radius-sm);height:44px;object-fit:contain;transition:transform var(--transition-base);width:44px}.brand-logo:hover{transform:scale(1.08)}.brand-center{align-items:center;display:flex;flex-direction:column;gap:2px}.brand-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-orange-400),var(--color-amber-300));-webkit-background-clip:text;background-clip:text;font-size:1.3rem;font-weight:800;letter-spacing:2px;text-transform:uppercase}.brand-subtitle{color:var(--color-gray-500);font-size:.65rem;font-weight:500;letter-spacing:1.5px;text-transform:uppercase}.page-title{animation:fadeInUp .5s ease .1s both;margin-bottom:24px;text-align:center}.page-title h1{color:var(--color-white);font-size:1.6rem;font-weight:700;letter-spacing:-.5px;margin:0 0 6px}.page-title-accent{background:linear-gradient(90deg,var(--color-orange-500),var(--color-amber-400));border-radius:var(--radius-full);display:block;height:3px;margin:0 auto;width:48px}.back-btn{align-items:center;background:var(--color-gray-800);border:1px solid var(--color-gray-700);border-radius:var(--radius-md);color:var(--color-gray-400);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:.8rem;font-weight:600;gap:6px;margin-bottom:16px;padding:8px 14px;transition:all var(--transition-base)}.back-btn:hover{background:var(--color-gray-700);border-color:var(--color-gray-500);color:var(--color-white)}.game-header-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:16px}.attempts-badge{background:var(--color-gray-800);border:1px solid var(--color-gray-700);border-radius:var(--radius-full);color:var(--color-gray-300);font-size:.75rem;font-weight:600;letter-spacing:.3px;padding:6px 14px}.attempts-badge--score{border-color:#f973164d;color:var(--color-orange-400)}.streak-badge{animation:pulse-glow 2s ease infinite;background:linear-gradient(135deg,#f9731626,#fbbf241a);border:1px solid #f9731666;border-radius:var(--radius-full);color:var(--color-amber-400);font-size:.75rem;font-weight:700;padding:6px 14px}.game-page{animation:fadeIn .3s ease both}.instructions-card{animation:fadeInUp .5s ease .15s both;background:var(--color-gray-900);border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);margin-bottom:20px;padding:16px 20px}.instructions-card-header{border-bottom:1px solid var(--color-gray-700);color:var(--color-orange-400);font-size:.85rem;font-weight:600;letter-spacing:1.5px;margin:0 0 12px;padding-bottom:10px;text-transform:uppercase}.instructions-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.instructions-list li{align-items:flex-start;color:var(--color-gray-300);display:flex;font-size:.875rem;gap:10px;line-height:1.5}.instruction-number{align-items:center;background:var(--color-gray-700);border-radius:var(--radius-full);color:var(--color-orange-400);display:inline-flex;flex-shrink:0;font-size:.7rem;font-weight:700;height:22px;justify-content:center;margin-top:1px;min-width:22px}.challenge-selector{grid-gap:8px;animation:fadeInUp .5s ease .2s both;display:grid;gap:8px;grid-template-columns:repeat(4,1fr);margin-bottom:20px}.challenge-btn{align-items:center;background:var(--color-gray-800);border:1px solid var(--color-gray-600);border-radius:var(--radius-md);color:var(--color-gray-300);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:.8rem;font-weight:600;justify-content:center;letter-spacing:.5px;overflow:hidden;padding:10px 6px;position:relative;transition:all var(--transition-base)}.challenge-btn:before{background:linear-gradient(135deg,var(--color-orange-500),var(--color-amber-400));content:"";inset:0;opacity:0;position:absolute;transition:opacity var(--transition-base)}.challenge-btn:hover{border-color:var(--color-orange-500);box-shadow:var(--shadow-glow-orange);color:var(--color-white);transform:translateY(-1px)}.challenge-btn:hover:before{opacity:.1}.challenge-btn--active{background:linear-gradient(135deg,#f9731626,#fbbf241a);border-color:var(--color-orange-500);box-shadow:var(--shadow-glow-orange);color:var(--color-orange-400)}.challenge-btn--active:after{background:var(--color-orange-500);border-radius:var(--radius-full);bottom:0;content:"";height:2px;left:20%;position:absolute;right:20%}.challenge-btn span{position:relative;z-index:1}.grid-wrapper{animation:fadeInUp .5s ease .25s both;margin-bottom:20px;padding:0 4px;width:100%}.grid-frame{background:var(--color-gray-900);border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);padding:20px 16px 16px 28px;position:relative}.grid-inner{margin:0 auto;position:relative}.row-labels{display:flex;flex-direction:column;left:0;position:absolute}.row-label{align-items:center;color:var(--color-gray-500);display:flex;font-family:var(--font-mono);font-size:.65rem;font-weight:600;justify-content:center;-webkit-user-select:none;user-select:none}.col-labels{display:flex;justify-content:space-between;left:0;position:absolute;top:0;width:100%}.col-label{align-items:center;color:var(--color-gray-500);display:flex;font-family:var(--font-mono);font-size:.65rem;font-weight:600;justify-content:center;-webkit-user-select:none;user-select:none}.grid-canvas{pointer-events:none;position:absolute;z-index:10}.dots-grid{grid-gap:0;display:grid;gap:0;position:absolute}.dot-cell{align-items:center;display:flex;justify-content:center}.dot-btn{border:none;border-radius:50%;cursor:pointer;outline:none;position:relative;transition:all var(--transition-fast)}.dot-btn--default{background:var(--color-gray-600)}.dot-btn--default:hover{background:var(--color-orange-400);box-shadow:0 0 10px #f9731666;transform:scale(1.3)}.dot-btn--correct{animation:dotPulse 1.5s ease infinite;background:var(--color-success);box-shadow:0 0 10px #22c55e66;transform:scale(1.3)}.dot-btn--incorrect{background:var(--color-error);box-shadow:0 0 10px #ef444466;transform:scale(1.3)}.selection-trail{align-items:center;animation:fadeInUp .5s ease .3s both;background:var(--color-gray-900);border:1px solid var(--color-gray-700);border-radius:var(--radius-md);color:var(--color-gray-400);display:flex;flex-wrap:wrap;font-family:var(--font-mono);font-size:.8rem;font-weight:500;gap:4px;justify-content:center;margin-bottom:16px;min-height:32px;padding:8px 12px}.selection-trail-label{color:var(--color-gray-500);font-size:.7rem;letter-spacing:1px;margin-right:4px;text-transform:uppercase}.selection-trail-dot{color:var(--color-orange-400);font-weight:600}.selection-trail-arrow{color:var(--color-gray-600);font-size:.7rem}.selection-trail-empty{color:var(--color-gray-600);font-family:var(--font-sans);font-size:.78rem;font-style:italic}.controls{animation:fadeInUp .5s ease .35s both;display:flex;gap:12px}.btn,.controls{justify-content:center}.btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:.85rem;font-weight:600;gap:6px;letter-spacing:.3px;overflow:hidden;padding:10px 24px;position:relative;transition:all var(--transition-base)}.btn--reset{background:var(--color-gray-800);border:1px solid var(--color-gray-600);color:var(--color-gray-300)}.btn--reset:hover{background:var(--color-gray-700);border-color:var(--color-gray-500);color:var(--color-white)}.btn--submit{background:linear-gradient(135deg,var(--color-orange-500),var(--color-orange-600));box-shadow:var(--shadow-md);color:#fff}.btn--submit:hover{background:linear-gradient(135deg,var(--color-orange-400),var(--color-orange-500));box-shadow:var(--shadow-glow-orange);transform:translateY(-1px)}.btn--submit:active{transform:translateY(0)}.btn--submit:disabled{background:var(--color-gray-700);box-shadow:none;color:var(--color-gray-500);cursor:not-allowed;transform:none}.btn--disabled{background:var(--color-gray-800)!important;border:1px solid var(--color-gray-700)!important;box-shadow:none!important;color:var(--color-gray-600)!important;cursor:not-allowed!important;transform:none!important}.feedback-banner{animation:fadeIn .3s ease both;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;margin-top:16px;padding:12px 16px;text-align:center}.feedback-banner--success{background:#22c55e1a;border:1px solid #22c55e4d;color:#4ade80}.feedback-banner--error{background:#ef44441a;border:1px solid #ef44444d;color:#f87171}.success-card{animation:fadeInUp .5s ease both;background:linear-gradient(135deg,var(--color-gray-900),var(--color-gray-800));border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);margin-top:20px;overflow:hidden;padding:24px 20px;position:relative;text-align:center}.success-card:before{animation:shimmer 2.5s linear infinite;background:linear-gradient(90deg,var(--color-success),var(--color-amber-400),var(--color-success));background-size:200% 100%;content:"";height:3px;left:0;position:absolute;right:0;top:0}.success-card-title{color:var(--color-white);font-size:1.3rem;font-weight:700;margin:0 0 4px}.success-card-subtitle{color:var(--color-gray-400);font-size:.9rem;margin:0 0 20px}.success-card-image-wrapper{display:flex;justify-content:center;padding:12px 0}.success-card-image{border:2px solid var(--color-gray-700);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);height:auto;transition:transform var(--transition-base);width:140px}.success-card-image:hover{transform:scale(1.05)}.app-footer{animation:fadeIn .5s ease .5s both;margin-top:32px;text-align:center}.app-footer-text{color:var(--color-gray-600);font-size:.7rem;letter-spacing:1px;text-transform:uppercase}.timer-display{align-items:center;background:var(--color-gray-800);border:1px solid var(--color-gray-700);border-radius:var(--radius-full);display:flex;gap:8px;padding:6px 14px}.timer-ring{height:24px;width:24px}.timer-ring-bg{color:var(--color-gray-700)}.timer-ring-progress{color:var(--color-orange-400);transition:stroke-dasharray 1s linear}.timer-text{color:var(--color-gray-300);font-family:var(--font-mono);font-size:.8rem;font-weight:600}.timer-text--danger{animation:pulse-glow .5s ease infinite;color:var(--color-error)}.progress-bar-wrapper{background:var(--color-gray-800);border-radius:var(--radius-full);height:4px;margin-bottom:20px;overflow:hidden;width:100%}.progress-bar-wrapper--large{height:8px}.progress-bar-fill{background:linear-gradient(90deg,var(--color-orange-500),var(--color-amber-400));border-radius:var(--radius-full);height:100%;transition:width .5s ease}.confetti-container{inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:9999}.confetti-particle{animation:confettiFall linear forwards;position:absolute}.confetti-circle{border-radius:50%}.confetti-rect{border-radius:2px}.score-display{animation:fadeInUp .5s ease both;background:var(--color-gray-800);border:1px solid var(--color-gray-700);border-radius:var(--radius-md);margin-top:16px;padding:16px}.score-display-main{align-items:center;display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.score-label{color:var(--color-gray-500);font-size:.75rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase}.score-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-orange-400),var(--color-amber-300));-webkit-background-clip:text;background-clip:text;font-family:var(--font-mono);font-size:2.2rem;font-weight:800}.score-breakdown{border-top:1px solid var(--color-gray-700);display:flex;flex-direction:column;gap:6px;padding-top:12px}.score-breakdown-item{align-items:center;display:flex;font-size:.78rem;justify-content:space-between}.score-breakdown-label{color:var(--color-gray-400)}.score-breakdown-value--positive{color:var(--color-success);font-family:var(--font-mono);font-weight:600}.score-breakdown-value--negative{color:var(--color-error);font-family:var(--font-mono);font-weight:600}.modal-overlay{align-items:center;animation:fadeIn .3s ease both;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.modal-card{animation:bounceIn .4s ease both;background:var(--color-gray-900);border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);max-width:380px;padding:28px 24px;width:100%}.modal-title{color:var(--color-white);font-size:1.2rem;font-weight:700;margin:0 0 4px;text-align:center}.modal-subtitle{color:var(--color-gray-400);font-size:.85rem;margin:0 0 20px;text-align:center}.modal-form{display:flex;flex-direction:column;gap:14px}.modal-input{background:var(--color-gray-800);border:1px solid var(--color-gray-600);border-radius:var(--radius-md);color:var(--color-white);font-family:var(--font-sans);font-size:.9rem;outline:none;padding:12px 16px;transition:border-color var(--transition-base);width:100%}.modal-input:focus{border-color:var(--color-orange-500);box-shadow:0 0 0 3px #f9731626}.modal-input::placeholder{color:var(--color-gray-500)}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.home-page{animation:fadeIn .3s ease both}.hero-section{animation:fadeInUp .5s ease both;margin-bottom:28px;text-align:center}.hero-title{-webkit-text-fill-color:#0000;animation:shimmer 4s linear infinite;background:linear-gradient(135deg,var(--color-orange-400),var(--color-amber-300),var(--color-orange-500));-webkit-background-clip:text;background-clip:text;background-size:200% auto;font-size:2rem;font-weight:800;letter-spacing:-1px;margin:0 0 8px}.hero-subtitle{color:var(--color-gray-400);font-size:.95rem;margin:0 0 12px}.overall-progress{animation:fadeInUp .5s ease .1s both;margin-bottom:24px}.progress-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.progress-label{color:var(--color-gray-500);letter-spacing:1px;text-transform:uppercase}.progress-label,.progress-value{font-size:.78rem;font-weight:600}.progress-value{color:var(--color-orange-400);font-family:var(--font-mono)}.game-cards-grid{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.game-card{align-items:center;animation:fadeInUp .5s ease both;background:var(--color-gray-900);border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);cursor:pointer;display:flex;font-family:var(--font-sans);gap:14px;overflow:hidden;padding:16px;position:relative;text-align:left;transition:all var(--transition-base)}.game-card:before{background:var(--color-orange-500);background:var(--card-color,var(--color-orange-500));border-radius:var(--radius-full);bottom:0;content:"";left:0;position:absolute;top:0;transition:width var(--transition-base);width:3px}.game-card:hover{border-color:var(--card-color,var(--color-orange-500));box-shadow:0 0 20px color-mix(in srgb,var(--color-orange-500) 20%,#0000);box-shadow:0 0 20px color-mix(in srgb,var(--card-color,var(--color-orange-500)) 20%,#0000);transform:translateX(4px)}.game-card:hover:before{width:4px}.game-card--completed{border-color:#22c55e4d}.game-card--completed:before{background:var(--color-success)}.game-card-icon{align-items:center;color:var(--color-orange-400);color:var(--card-color,var(--color-orange-400));display:flex;flex-shrink:0;height:48px;justify-content:center;opacity:.8;width:48px}.game-card-icon svg{height:100%;width:100%}.game-card-content{flex:1 1;min-width:0}.game-card-title{color:var(--color-white);font-size:1rem;font-weight:700;margin:0 0 4px}.game-card-desc{color:var(--color-gray-400);font-size:.78rem;line-height:1.4;margin:0 0 8px}.game-card-footer{align-items:center;display:flex;gap:8px}.difficulty-badge{border-radius:var(--radius-full);font-size:.65rem;font-weight:600;letter-spacing:.5px;padding:2px 8px;text-transform:uppercase}.difficulty-easy{background:#22c55e1a;border:1px solid #22c55e4d;color:#4ade80}.difficulty-medium{background:#f973161a;border:1px solid #f973164d;color:#fb923c}.difficulty-hard{background:#ef44441a;border:1px solid #ef44444d;color:#f87171}.completed-badge{background:#22c55e1a;border:1px solid #22c55e4d;border-radius:var(--radius-full);color:#4ade80;font-size:.65rem;font-weight:600;letter-spacing:.5px;padding:2px 8px;text-transform:uppercase}.game-card-arrow{color:var(--color-gray-600);flex-shrink:0;transition:all var(--transition-base)}.game-card:hover .game-card-arrow{color:var(--color-orange-400);color:var(--card-color,var(--color-orange-400));transform:translateX(4px)}.leaderboard-cta{align-items:center;animation:fadeInUp .5s ease .5s both;background:linear-gradient(135deg,#f9731614,#fbbf240d);border:1px solid #f973164d;border-radius:var(--radius-lg);color:var(--color-amber-400);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:.9rem;font-weight:600;gap:10px;justify-content:center;padding:14px 20px;transition:all var(--transition-base);width:100%}.leaderboard-cta:hover{background:linear-gradient(135deg,#f9731626,#fbbf241a);border-color:var(--color-orange-500);box-shadow:var(--shadow-glow-orange);transform:translateY(-2px)}.nav-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f0f0fe6;border-top:1px solid var(--color-gray-800);bottom:0;display:flex;gap:8px;justify-content:center;left:0;padding:10px 20px;position:fixed;right:0;z-index:100}.nav-item{align-items:center;border-radius:var(--radius-md);color:var(--color-gray-500);display:flex;flex-direction:column;font-family:var(--font-sans);font-size:.65rem;font-weight:600;gap:3px;padding:6px 20px;position:relative;text-decoration:none;transition:all var(--transition-base)}.nav-item:hover{color:var(--color-gray-300)}.nav-item--active{color:var(--color-orange-400)}.nav-item--active:after{background:var(--color-orange-500);border-radius:var(--radius-full);bottom:0;content:"";height:2px;left:30%;position:absolute;right:30%}.nav-icon{height:20px;width:20px}.cipher-card{animation:fadeInUp .5s ease both;background:var(--color-gray-900);border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);margin-bottom:16px;padding:24px 20px}.cipher-label{color:var(--color-gray-500);font-size:.78rem;font-weight:600;letter-spacing:1px;margin-bottom:12px;text-transform:uppercase}.cipher-text{background:var(--color-gray-800);border:1px solid var(--color-gray-700);border-radius:var(--radius-md);color:var(--color-blue-400);font-family:var(--font-mono);font-size:1.3rem;font-weight:700;letter-spacing:3px;margin-bottom:16px;padding:16px;text-align:center;word-break:break-all}.cipher-form{display:flex;flex-direction:column;gap:12px}.cipher-input-label{color:var(--color-gray-400);font-size:.78rem;font-weight:600}.cipher-input{letter-spacing:1px;text-transform:uppercase}.cipher-hint{animation:fadeIn .3s ease both;background:#fbbf2414;border:1px solid #fbbf2433;border-radius:var(--radius-md);font-size:.8rem;padding:10px 14px}.cipher-hint,.hint-btn{color:var(--color-amber-400);margin-bottom:12px}.hint-btn{align-items:center;background:#0000;border:1px solid #fbbf244d;border-radius:var(--radius-full);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:.75rem;font-weight:600;gap:4px;padding:6px 12px;transition:all var(--transition-base)}.hint-btn:hover{background:#fbbf241a;border-color:var(--color-amber-400)}.round-summary{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:16px}.round-result{align-items:center;border-radius:var(--radius-full);display:flex;font-size:.7rem;font-weight:600;gap:6px;padding:4px 10px}.round-result--correct{background:#22c55e1a;border:1px solid #22c55e4d;color:#4ade80}.round-result--wrong{background:#ef44441a;border:1px solid #ef44444d;color:#f87171}.round-num{font-weight:700}.memory-grid{grid-gap:10px;animation:fadeInUp .5s ease both;background:var(--color-gray-900);border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);display:grid;gap:10px;grid-template-columns:repeat(4,1fr);margin:0 auto 20px;max-width:400px;padding:16px}.memory-card{aspect-ratio:1;background:none;border:none;cursor:pointer;padding:0;perspective:600px}.memory-card-inner{border-radius:var(--radius-md);height:100%;position:relative;transform-style:preserve-3d;transition:transform .5s ease;width:100%}.memory-card--flipped .memory-card-inner,.memory-card--matched .memory-card-inner{transform:rotateY(180deg)}.memory-card--matched{cursor:default}.memory-card-back,.memory-card-front{align-items:center;backface-visibility:hidden;border-radius:var(--radius-md);display:flex;inset:0;justify-content:center;position:absolute}.memory-card-front{background:linear-gradient(135deg,var(--color-gray-800),var(--color-gray-700));border:2px solid var(--color-gray-600);color:var(--color-gray-500)}.memory-card:hover .memory-card-front{border-color:var(--color-orange-500);box-shadow:0 0 12px #f9731633}.memory-card-icon{font-size:1.5rem;font-weight:700}.memory-card-back{background:linear-gradient(135deg,var(--color-gray-900),var(--color-gray-800));border:2px solid var(--color-orange-500);box-shadow:0 0 15px #f9731626;transform:rotateY(180deg)}.memory-card--matched .memory-card-back{background:linear-gradient(135deg,#22c55e0d,var(--color-gray-900));border-color:var(--color-success);box-shadow:0 0 15px #22c55e26}.memory-card-symbol{font-size:2rem}.memory-card--matched .memory-card-symbol{color:var(--color-success)}.scramble-card{animation:fadeInUp .5s ease both;background:var(--color-gray-900);border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);margin-bottom:16px;padding:24px 20px;text-align:center}.scramble-label{color:var(--color-gray-500);font-size:.78rem;font-weight:600;letter-spacing:1px;margin-bottom:16px;text-transform:uppercase}.scramble-letters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:20px}.scramble-letter{align-items:center;animation:letterPop .4s ease both;background:linear-gradient(135deg,var(--color-gray-800),var(--color-gray-700));border:2px solid var(--color-gray-600);border-radius:var(--radius-md);color:var(--color-white);display:inline-flex;font-family:var(--font-mono);font-size:1.4rem;font-weight:800;height:52px;justify-content:center;width:44px}.scramble-actions{display:flex;gap:10px;justify-content:center}.shake{animation:shake .5s ease both}.leaderboard-page{animation:fadeIn .3s ease both}.winner-banner{animation:fadeInUp .6s ease both;background:linear-gradient(135deg,#fbbf241f,#f973161a 50%,#fbbf2414);border:1.5px solid #fbbf2480;border-radius:var(--radius-xl);box-shadow:0 0 40px #fbbf241f,0 0 80px #f9731612,inset 0 1px 0 #fbbf2433;margin-bottom:24px;overflow:hidden;padding:28px 20px 24px;position:relative;text-align:center}.winner-banner:before{animation:shimmer 2.5s linear infinite;background:linear-gradient(90deg,#0000,var(--color-amber-400),var(--color-orange-400),var(--color-amber-300),#0000);background-size:300% 100%;border-radius:var(--radius-xl) var(--radius-xl) 0 0;content:"";height:3px;left:0;position:absolute;right:0;top:0}.winner-banner:after{background:radial-gradient(ellipse 70% 50% at 50% 0,#fbbf2414 0,#0000 70%);content:"";inset:0}.winner-banner:after,.winner-sparkle{pointer-events:none;position:absolute}.winner-sparkle{animation:sparklePulse 2.4s ease-in-out infinite;border-radius:50%}.winner-sparkle--1{animation-delay:0s;background:var(--color-amber-400);height:6px;left:22px;opacity:.7;top:18px;width:6px}.winner-sparkle--2{animation-delay:.8s;background:var(--color-orange-400);height:4px;opacity:.6;right:30px;top:28px;width:4px}.winner-sparkle--3{animation-delay:1.6s;background:var(--color-amber-300);bottom:20px;height:5px;left:50%;opacity:.5;width:5px}@keyframes sparklePulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.8)}}.winner-crown{animation:crownBounce 2s ease-in-out infinite;display:block;filter:drop-shadow(0 0 10px rgba(251,191,36,.6));font-size:2.4rem;margin-bottom:6px;position:relative;z-index:1}@keyframes crownBounce{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}}.winner-label{color:var(--color-amber-400);font-size:.68rem;font-weight:700;letter-spacing:2.5px;margin-bottom:10px;text-transform:uppercase}.winner-label,.winner-name{position:relative;z-index:1}.winner-name{-webkit-text-fill-color:#0000;animation:shimmer 3s linear infinite;background:linear-gradient(135deg,var(--color-amber-300),var(--color-orange-400),var(--color-amber-400));-webkit-background-clip:text;background-clip:text;background-size:200% auto;font-size:2rem;font-weight:800;letter-spacing:-.5px;margin-bottom:14px}.winner-meta{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;position:relative;z-index:1}.winner-email{align-items:center;background:#0000004d;border:1px solid #fbbf2440;border-radius:var(--radius-full);color:var(--color-gray-300);display:inline-flex;font-family:var(--font-mono);font-size:.78rem;gap:5px;letter-spacing:.3px;padding:5px 12px}.winner-email svg{color:var(--color-amber-400);flex-shrink:0}.winner-score-pill{align-items:center;background:linear-gradient(135deg,#f973164d,#fbbf2440);border:1px solid #f9731680;border-radius:var(--radius-full);box-shadow:0 0 12px #f9731633;color:var(--color-amber-300);display:inline-flex;font-family:var(--font-mono);font-size:.85rem;font-weight:700;gap:5px;padding:5px 14px}.winner-score-pill svg{color:var(--color-orange-400);flex-shrink:0}.leaderboard-filters{animation:fadeInUp .5s ease .1s both;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}.filter-btn{background:var(--color-gray-800);border:1px solid var(--color-gray-700);border-radius:var(--radius-full);color:var(--color-gray-400);cursor:pointer;font-family:var(--font-sans);font-size:.72rem;font-weight:600;padding:6px 14px;transition:all var(--transition-base)}.filter-btn:hover{border-color:var(--color-gray-500);color:var(--color-white)}.filter-btn--active{background:linear-gradient(135deg,#f9731626,#fbbf241a);border-color:var(--color-orange-500);color:var(--color-orange-400)}.leaderboard-loading{align-items:center;color:var(--color-gray-500);display:flex;flex-direction:column;font-size:.85rem;gap:12px;padding:40px 0}.spinner{animation:spin .8s linear infinite;border:3px solid var(--color-gray-700);border-radius:50%;border-top-color:var(--color-orange-500);height:28px;width:28px}.leaderboard-empty{animation:fadeIn .5s ease both;padding:40px 20px;text-align:center}.empty-icon{color:var(--color-gray-600);height:48px;margin-bottom:12px;width:48px}.leaderboard-empty p{color:var(--color-gray-400);margin:0 0 4px}.leaderboard-empty-sub{color:var(--color-gray-600);font-size:.8rem}.leaderboard-table-wrapper{animation:fadeInUp .5s ease .15s both;overflow-x:auto}.leaderboard-table{border-collapse:collapse;font-size:.85rem;width:100%}.leaderboard-table th{border-bottom:1px solid var(--color-gray-700);color:var(--color-gray-500);font-size:.7rem;font-weight:600;letter-spacing:1px;padding:10px 12px;text-align:left;text-transform:uppercase}.leaderboard-table td{border-bottom:1px solid var(--color-gray-800);padding:10px 12px}.leaderboard-row{transition:background var(--transition-fast)}.leaderboard-row:hover{background:var(--color-gray-900)}.leaderboard-row.medal-gold{background:#fbbf240d}.leaderboard-row.medal-silver{background:#c0c0c008}.leaderboard-row.medal-bronze{background:#cd7f3208}.rank-badge{align-items:center;background:var(--color-gray-800);border-radius:var(--radius-full);color:var(--color-gray-400);display:inline-flex;font-size:.7rem;font-weight:700;height:24px;justify-content:center;min-width:28px;padding:0 6px}.rank-badge.medal-gold{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#000}.rank-badge.medal-silver{background:linear-gradient(135deg,#d1d5db,#9ca3af);color:#000}.rank-badge.medal-bronze{background:linear-gradient(135deg,#d97706,#b45309);color:#fff}.player-cell{color:var(--color-white);font-weight:600}.game-cell{color:var(--color-gray-400);font-size:.78rem}.score-cell{color:var(--color-orange-400);font-family:var(--font-mono);font-weight:700}@media (max-width:480px){.app-shell{padding:12px 8px 76px}.brand-bar{padding:12px 14px}.brand-logo{height:36px;width:36px}.brand-title{font-size:1.1rem}.page-title h1{font-size:1.3rem}.hero-title{font-size:1.6rem}.instructions-card{padding:12px 14px}.challenge-selector{grid-template-columns:repeat(2,1fr)}.grid-frame{padding:16px 10px 12px 22px}.btn{font-size:.8rem;padding:9px 18px}.success-card-image{width:120px}.memory-grid{gap:8px;padding:12px}.scramble-letter{font-size:1.1rem;height:44px;width:36px}}@media (min-width:640px){.brand-logo{height:50px;width:50px}.brand-title{font-size:1.5rem}.page-title h1{font-size:1.8rem}.hero-title{font-size:2.4rem}.grid-frame{padding:24px 20px 20px 36px}.success-card-image{width:160px}}.login-page{align-items:center;animation:fadeIn .5s ease both;display:flex;justify-content:center;min-height:100vh;padding:20px}.login-container{max-width:420px;width:100%}.login-header{animation:fadeInUp .5s ease both;margin-bottom:28px;text-align:center}.login-title{-webkit-text-fill-color:#0000;animation:shimmer 4s linear infinite;background:linear-gradient(135deg,var(--color-orange-400),var(--color-amber-300),var(--color-orange-500));-webkit-background-clip:text;background-clip:text;background-size:200% auto;font-size:2.2rem;font-weight:800;letter-spacing:-1px;margin:0 0 4px}.login-subtitle{color:var(--color-gray-500);font-size:.85rem;letter-spacing:2px;margin:0 0 12px;text-transform:uppercase}.login-card{animation:fadeInUp .5s ease .1s both;background:var(--color-gray-900);border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);margin-bottom:20px;overflow:hidden;padding:24px;position:relative}.login-card:before{animation:shimmer 3s linear infinite;background:linear-gradient(90deg,var(--color-orange-500),var(--color-amber-400),var(--color-orange-500));background-size:200% 100%;content:"";height:3px;left:0;position:absolute;right:0;top:0}.login-tabs{background:var(--color-gray-800);border-radius:var(--radius-md);display:flex;gap:4px;margin-bottom:20px;padding:3px}.login-tab{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-gray-400);cursor:pointer;flex:1 1;font-family:var(--font-sans);font-size:.85rem;font-weight:600;padding:10px;transition:all var(--transition-base)}.login-tab--active{background:linear-gradient(135deg,var(--color-orange-500),var(--color-orange-600));box-shadow:var(--shadow-sm);color:#fff}.login-form{gap:16px}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:6px}.login-label{color:var(--color-gray-400);font-size:.78rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.login-email-hint{color:#fbbf24;font-size:.7rem;margin-top:2px}.login-error{background:#ef44441a;border:1px solid #ef44444d;border-radius:var(--radius-md);color:#f87171;font-size:.8rem;padding:10px 14px;text-align:center}.login-btn{font-size:.9rem;padding:12px;width:100%}.login-note{color:var(--color-gray-500);font-size:.75rem;margin:12px 0 0;text-align:center}.login-rules{animation:fadeInUp .5s ease .2s both;background:var(--color-gray-900);border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);padding:18px 20px}.login-rules-title{border-bottom:1px solid var(--color-gray-700);color:var(--color-orange-400);font-size:.85rem;font-weight:600;letter-spacing:1.5px;margin:0 0 12px;padding-bottom:10px;text-transform:uppercase}.login-rules-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.login-rules-list li{color:var(--color-gray-400);font-size:.8rem;line-height:1.5;padding-left:16px;position:relative}.login-rules-list li:before{background:var(--color-orange-500);border-radius:50%;content:"";height:6px;left:0;position:absolute;top:8px;width:6px}.user-info-bar{align-items:center;animation:fadeInUp .5s ease .05s both;background:var(--color-gray-900);border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);display:flex;justify-content:space-between;margin-bottom:20px;padding:12px 16px}.user-info-left{display:flex;flex-direction:column;gap:2px}.user-info-name{color:var(--color-white);font-size:.9rem;font-weight:700}.user-info-score{color:var(--color-orange-400);font-family:var(--font-mono);font-size:.75rem;font-weight:600}.user-logout-btn{font-size:.72rem;padding:6px 14px}.secret-puzzle-card{animation:fadeInUp .5s ease both;background:var(--color-gray-900);border:1px solid var(--color-gray-700);border-radius:var(--radius-lg);margin-bottom:16px;padding:24px 20px}.secret-step-label{color:var(--color-orange-400);font-size:.78rem;font-weight:600;letter-spacing:1px;margin-bottom:16px;text-transform:uppercase}.secret-clue-text{background:var(--color-gray-800);border:1px solid var(--color-gray-700);border-radius:var(--radius-md);color:var(--color-gray-200);font-size:1rem;line-height:1.6;margin-bottom:20px;padding:16px}.difficulty-expert{animation:pulse-glow 3s ease infinite;background:#ef444426;border:1px solid #ef444466;color:#f87171}
/*# sourceMappingURL=main.8a42dc76.css.map*/