@tailwind base; @tailwind components; @tailwind utilities; @import 'https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&display=swap'; :root { --primary: #9333EA; --secondary: #A855F7; --accent: #8B5CF6; --text: #F3F4F6; --christmas-red: #ff3366; --christmas-green: #2ecc71; --christmas-gold: #ffd700; --snow-white: #ffffff; --dark-purple: #1a1025; --purple-glow: rgba(147, 51, 234, 0.15); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', sans-serif; } body { background: linear-gradient( 135deg, var(--dark-purple) 0%, #13111b 50%, #1a1025 100% ); min-height: 100vh; position: relative; margin: 0; display: flex; align-items: center; justify-content: center; min-height: 100vh; width: 100%; overflow: hidden; } main { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; display: flex; align-items: center; justify-content: center; z-index: 10; } .noise-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; opacity: 0.03; z-index: 1; pointer-events: none; } .gradient-sphere, .gradient-sphere-2 { position: fixed; pointer-events: none; z-index: 2; } .gradient-sphere { width: 50vw; height: 50vw; background: radial-gradient(circle, var(--purple-glow) 0%, transparent 70%); top: -25vw; right: -25vw; filter: blur(60px); animation: sphereFloat 20s ease-in-out infinite; } .gradient-sphere-2 { width: 40vw; height: 40vw; background: radial-gradient(circle, rgba(147, 51, 234, 0.1) 0%, transparent 70%); bottom: -20vw; left: -20vw; filter: blur(60px); animation: sphereFloat 15s ease-in-out infinite reverse; } @keyframes sphereFloat { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(-10%, 10%); } 50% { transform: translate(10%, -10%); } 75% { transform: translate(-5%, -5%); } } .key-generator-container { position: relative; padding: 1px; border-radius: 1.5rem; z-index: 10; margin: 0 auto; animation: fadeScale 0.6s cubic-bezier(0.16, 1, 0.3, 1); } @keyframes fadeScale { 0% { opacity: 0; transform: scale(0.95); } 100% { opacity: 1; transform: scale(1); } } .key-generator { position: relative; background: rgba(26, 16, 37, 0.95); padding: 2.5rem; border-radius: 1.5rem; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); min-width: 400px; max-width: 450px; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); gap: 1.5rem; } .key-display { background: rgba(147, 51, 234, 0.1); color: var(--text); padding: 1.25rem; border-radius: 1rem; margin-bottom: 2rem; text-align: center; font-family: monospace; font-size: 1.2rem; min-height: 80px; display: flex; align-items: center; justify-content: center; word-break: break-all; transition: all 0.3s ease; border: 2px solid rgba(147, 51, 234, 0.3); cursor: pointer; z-index: 15; position: relative; overflow: hidden; } .key-display::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient( 90deg, transparent, rgba(77, 255, 145, 0.1), transparent ); transition: 0.5s; } .key-display:hover::before { left: 100%; } .key-display.typing::after { content: '|'; animation: blink 1s step-end infinite; margin-left: 4px; } @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } } .key-display:hover { transform: scale(1.02); border-color: var(--primary); box-shadow: 0 0 30px rgba(147, 51, 234, 0.2); } .generate-btn { width: 100%; padding: 1.25rem; border-radius: 1rem; color: white; font-size: 1.25rem; font-weight: 600; position: relative; overflow: hidden; transition: all 0.3s ease; border: none; cursor: pointer; z-index: 15; position: relative; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); box-shadow: 0 4px 15px rgba(147, 51, 234, 0.3); margin: 2rem 0; } .generate-btn:active::after { opacity: 1; animation: ripple 0.5s cubic-bezier(0.16, 1, 0.3, 1); } @keyframes ripple { 0% { transform: scale(0.8); opacity: 1; } 100% { transform: scale(1.1); opacity: 0; } } .generate-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(147, 51, 234, 0.4); } .generate-btn:active { transform: translateY(1px); } .copy-tooltip { position: absolute; top: -2.5rem; left: 50%; transform: translateX(-50%); background: var(--primary); color: var(--text); padding: 0.5rem 1rem; border-radius: 0.5rem; font-size: 0.875rem; font-weight: 600; z-index: 20; animation: tooltipPop 0.3s cubic-bezier(0.16, 1, 0.3, 1); box-shadow: 0 4px 12px rgba(147, 51, 234, 0.3); } @keyframes tooltipPop { 0% { opacity: 0; transform: translate(-50%, 10px) scale(0.9); } 100% { opacity: 1; transform: translate(-50%, 0) scale(1); } } .center-container { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; padding: 1rem; display: flex; align-items: center; justify-content: center; z-index: 10; } .icon-wrapper { display: flex; justify-content: center; margin-bottom: 1rem; } .key-icon { width: 48px; height: 48px; stroke: #4dff91; animation: floatWithGlow 3s ease-in-out infinite; } @keyframes floatWithGlow { 0%, 100% { transform: translateY(0); filter: drop-shadow(0 0 5px rgba(77, 255, 145, 0.5)); } 50% { transform: translateY(-10px); filter: drop-shadow(0 0 15px rgba(77, 255, 145, 0.8)); } } .hash-icon { width: 20px; height: 20px; stroke: #4dff91; margin-right: 0.5rem; opacity: 0.7; } .btn-icon { width: 20px; height: 20px; stroke: currentColor; margin-right: 0.5rem; display: inline-block; vertical-align: middle; transition: transform 0.3s ease; } .copy-icon { width: 16px; height: 16px; stroke: currentColor; } .check-icon { width: 16px; height: 16px; stroke: currentColor; margin-right: 0.25rem; } .generate-btn { display: flex; align-items: center; justify-content: center; gap: 0.5rem; } .generate-btn:hover .btn-icon { animation: spinGlow 1s linear infinite; } @keyframes spinGlow { 0% { transform: rotate(0deg); filter: drop-shadow(0 0 2px rgba(77, 255, 145, 0.5)); } 100% { transform: rotate(360deg); filter: drop-shadow(0 0 2px rgba(77, 255, 145, 0.5)); } } .key-display { display: flex; align-items: center; justify-content: center; gap: 0.5rem; } .key-display:hover { transform: scale(1.02); border-color: var(--primary); box-shadow: 0 0 30px rgba(147, 51, 234, 0.2); } .copy-tooltip { display: flex; align-items: center; justify-content: center; gap: 0.25rem; background: var(--primary); color: var(--text); padding: 0.5rem 1rem; border-radius: 0.5rem; font-weight: 600; box-shadow: 0 4px 12px rgba(147, 51, 234, 0.3); } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } .loading { position: relative; } .loading::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(77, 255, 145, 0.2), transparent ); animation: loading 1.5s infinite; } @keyframes loading { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } } .copy-instruction-wrapper { display: none; } .copy-instruction { display: none; } .copy-instruction-arrow { display: none; } .key-display { margin-bottom: 2rem; } .copy-instruction::after { content: ''; position: absolute; inset: -1px; background: linear-gradient(45deg, rgba(147, 51, 234, 0.5), rgba(77, 255, 145, 0.5) ); border-radius: 13px; z-index: -1; opacity: 0; transition: opacity 0.3s ease; } .copy-instruction:hover::after { opacity: 0.3; } .christmas-decorations { position: fixed; inset: 0; pointer-events: none; z-index: 1; } .christmas-ornament { position: fixed; animation: ornamentSway 3s ease-in-out infinite; } .top-left { top: 2rem; left: 2rem; } .top-right { top: 2rem; right: 2rem; } .ornament-svg { filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.2)); } @keyframes snowfall { 0% { transform: translateY(-100%) rotate(0deg); } 100% { transform: translateY(100vh) rotate(360deg); } } .snowflake { animation: snowfall 10s linear infinite; } .snowflake:nth-child(2n) { animation-duration: 12s; } .snowflake:nth-child(3n) { animation-duration: 8s; } .christmas-icon-wrapper { position: relative; display: flex; align-items: center; justify-content: space-between; width: 200px; height: 60px; padding: 0 10px; } .icon-container { position: relative; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; } .christmas-icon { width: 28px; height: 28px; stroke: var(--christmas-red); animation: christmasIconGlow 2s ease-in-out infinite; z-index: 2; position: relative; } .star-icon { width: 32px; height: 32px; stroke: var(--christmas-gold); animation: starTwinkle 2s ease-in-out infinite; z-index: 2; position: relative; } .key-icon { width: 28px; height: 28px; stroke: var(--christmas-green); animation: keyIconGlow 2s ease-in-out infinite; z-index: 2; position: relative; } .icon-glow { position: absolute; width: 100%; height: 100%; border-radius: 50%; filter: blur(8px); opacity: 0.5; z-index: 1; } .gift-glow { background: var(--christmas-red); animation: glowPulse 2s ease-in-out infinite; } .star-glow { background: var(--christmas-gold); animation: glowPulse 2s ease-in-out infinite 0.3s; } .key-glow { background: var(--christmas-green); animation: glowPulse 2s ease-in-out infinite 0.6s; } @keyframes glowPulse { 0%, 100% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.6; transform: scale(1.2); } } @keyframes christmasIconGlow { 0%, 100% { transform: scale(1); filter: drop-shadow(0 0 5px var(--christmas-red)); } 50% { transform: scale(1.1); filter: drop-shadow(0 0 15px var(--christmas-red)); } } @keyframes starTwinkle { 0%, 100% { transform: scale(1); filter: drop-shadow(0 0 5px var(--christmas-gold)); } 50% { transform: scale(1.1); filter: drop-shadow(0 0 15px var(--christmas-gold)); } } @keyframes keyIconGlow { 0%, 100% { transform: scale(1); filter: drop-shadow(0 0 5px var(--christmas-green)); } 50% { transform: scale(1.1); filter: drop-shadow(0 0 15px var(--christmas-green)); } } @keyframes ornamentSway { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } } .gradient-sphere { background: radial-gradient(circle, var(--purple-glow) 0%, transparent 70%); } .gradient-sphere-2 { background: radial-gradient(circle, rgba(147, 51, 234, 0.1) 0%, transparent 70%); } .generate-btn { margin: 2rem 0; background: linear-gradient(310deg, #160EF7, #db30ff); } .key-generator > * { margin-bottom: 1.5rem; } .key-generator > *:last-child { margin-bottom: 0; } .christmas-lights { position: fixed; top: 0; left: 0; right: 0; display: flex; justify-content: space-around; padding: 10px; z-index: 2; } .light { width: 15px; height: 15px; border-radius: 50%; animation: lightGlow 1.5s infinite alternate; } .light.red { background: var(--christmas-red); animation-delay: 0s; } .light.green { background: var(--christmas-green); animation-delay: 0.3s; } .light.gold { background: var(--christmas-gold); animation-delay: 0.6s; } @keyframes lightGlow { 0% { transform: scale(1); filter: brightness(1) drop-shadow(0 0 2px currentColor); } 100% { transform: scale(1.1); filter: brightness(1.5) drop-shadow(0 0 10px currentColor); } } .key-display-wrapper { position: relative; margin: 3rem 0; } .key-display { margin-bottom: 2rem; min-height: 100px; font-size: 1.4rem; } .copy-instruction-wrapper { position: relative; height: 40px; margin-top: 1.5rem; } .copy-instruction { position: absolute; left: 50%; transform: translateX(-50%); background: rgba(147, 51, 234, 0.2); padding: 0.8rem 1.5rem; border-radius: 8px; display: flex; align-items: center; gap: 0.8rem; transition: all 0.3s ease; border: 1px solid rgba(147, 51, 234, 0.1); } .copy-instruction:hover { background: rgba(147, 51, 234, 0.3); transform: translateX(-50%) scale(1.05); border-color: rgba(147, 51, 234, 0.2); } .corner-decoration { position: fixed; z-index: 2; animation: decorationFloat 3s ease-in-out infinite; } .text-5xl { font-size:2rem; line-height:1 } .corner-decoration svg { filter: drop-shadow(0 0 8px currentColor); } @keyframes decorationFloat { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(5deg); } } .snowflakes { position: fixed; width: 100%; height: 100%; z-index: 1; pointer-events: none; } .snowflake { color: var(--snow-white); font-size: 1.8em; text-shadow: 0 0 8px var(--snow-white); opacity: 0.9; } .fade-in-element { transition-duration: 1s; } .key-generator { border: 1px solid rgba(147, 51, 234, 0.1); box-shadow: 0 8px 32px rgba(147, 51, 234, 0.2), 0 0 100px rgba(147, 51, 234, 0.1); } @media screen and (max-width: 600px) { .christmas-lights { display: none; } .corner-decoration { display: none; } .key-display { font-size: 1.2rem; min-height: 80px; } .text-5xl { font-size: 2rem !important; } .key-generator { min-width: unset; width: 100%; padding: 1.5rem; margin: 0 auto; max-height: calc(100vh - 2rem); } .copy-instruction { padding: 0.8rem 1.5rem; font-size: 0.85rem; } .gradient-sphere, .gradient-sphere-2 { display: none; } .copy-instruction-wrapper { margin-top: 2.5rem; } } .christmas-bells { position: fixed; z-index: 3; } .bell-icon { width: 32px; height: 32px; stroke: var(--christmas-gold); animation: bellRing 2s ease-in-out infinite; } .christmas-tree { position: fixed; bottom: 2rem; left: 2rem; z-index: 3; } .tree-icon { width: 48px; height: 48px; stroke: var(--christmas-green); fill: var(--christmas-green); opacity: 0.8; animation: treeGlow 2s ease-in-out infinite; } @keyframes bellRing { 0%, 100% { transform: rotate(-5deg); filter: drop-shadow(0 0 5px var(--christmas-gold)); } 50% { transform: rotate(5deg); filter: drop-shadow(0 0 15px var(--christmas-gold)); } } @keyframes treeGlow { 0%, 100% { filter: drop-shadow(0 0 5px var(--christmas-green)); } 50% { filter: drop-shadow(0 0 15px var(--christmas-green)); } } .generate-btn:hover { box-shadow: 0 6px 20px rgba(255, 51, 102, 0.4); } .santa-icon-wrapper { position: absolute; top: -25px; right: -25px; z-index: 20; animation: santaBounce 2s ease-in-out infinite; filter: drop-shadow(0 0 8px rgba(255, 51, 102, 0.4)); } .santa-icon { width: 50px; height: 50px; filter: brightness(0.95) contrast(1.1); transform: rotate(15deg); } @keyframes santaBounce { 0%, 100% { transform: translateY(0) rotate(15deg); } 50% { transform: translateY(-5px) rotate(20deg); } } .hidden-element { opacity: 0; transform: translateY(30px); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); will-change: opacity, transform; } .fade-in-element { opacity: 1 !important; transform: translateY(0) !important; } .title-gradient { background: linear-gradient( 45deg, #9333EA, #A855F7, #8B5CF6 ); background-size: 200% 200%; animation: gradientFlow 8s ease infinite; -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: 0 0 30px rgba(147, 51, 234, 0.3); } @keyframes gradientFlow { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } :root { --christmas-red: #ff3366; --christmas-green: #2ecc71; --snow-white: #ffffff; --dark-purple: #1a1025; --purple-glow: rgba(147, 51, 234, 0.15); } .snowflake { position: fixed; pointer-events: none; z-index: 1; color: var(--snow-white); opacity: 0.5; } .secret-title { background: linear-gradient( 45deg, #9333EA 0%, #c026d3 25%, #fe7530 50%, #8B5CF6 75%, #9333EA 100% ); background-size: 300% 300%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: gradientFlow 8s ease infinite; text-shadow: 0 0 30px rgba(147, 51, 234, 0.2); font-family: 'Inter', sans-serif; letter-spacing: -1px; } .exploits-text { background: linear-gradient( 45deg, #ff8f32 0%, #3d7fff 50%, #9333EA 100% ); -webkit-background-clip: text; background-clip: text; color: transparent; margin-left: 4px; } @keyframes gradientFlow { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .key { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; } @media screen and (max-width: 480px) { .key-generator { min-width: unset; width: 100%; padding: 1.5rem; margin: 0 auto; max-height: calc(100vh - 2rem); } .key { overflow: scroll; } .text-5xl { font-size: 1rem; } .key-display { font-size: 0.85rem; padding: 0; min-height: 50px; gap:0 } .key-display-wrapper { margin: 1rem 0; } .generate-btn { padding: 1rem; font-size: 0.9rem; } .christmas-icon-wrapper { width: 160px; height: 50px; } .icon-container { width: 32px; height: 32px; } .christmas-icon, .key-icon { width: 24px; height: 24px; } .star-icon { width: 28px; height: 28px; } h1 { font-size: 1.4rem; } .santa-icon-wrapper { top: -20px; right: -20px; } .santa-icon { width: 40px; height: 40px; } .gradient-sphere, .gradient-sphere-2 { display: none; /* hide on mobile */ } .gradient-sphere, .gradient-sphere-2 { opacity: 0.3; z-index: -1; } .gradient-sphere { width: 100vw; height: 100vw; top: -50vh; right: -50vw; } .gradient-sphere-2 { width: 100vw; height: 100vw; bottom: -50vh; left: -50vw; } } .gradient-sphere, .gradient-sphere-2 { position: fixed; pointer-events: none; z-index: -1; opacity: 0.5; } .gradient-sphere { width: 50vw; height: 50vw; background: radial-gradient(circle, var(--purple-glow) 0%, transparent 70%); top: -25vw; right: -25vw; filter: blur(60px); animation: sphereFloat 20s ease-in-out infinite; } .gradient-sphere-2 { width: 40vw; height: 40vw; background: radial-gradient(circle, rgba(147, 51, 234, 0.1) 0%, transparent 70%); bottom: -20vw; left: -20vw; filter: blur(60px); animation: sphereFloat 15s ease-in-out infinite reverse; } .key-display { background: rgba(147, 51, 234, 0.1); color: var(--text); padding: 1.25rem; border-radius: 1rem; margin-bottom: 2rem; text-align: center; font-family: monospace; font-size: 1rem; min-height: 60px; display: flex; align-items: center; justify-content: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: all 0.3s ease; border: 2px solid rgba(147, 51, 234, 0.3); z-index: 15; position: relative; } #particles-js { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; } .particles { position: fixed !important; width: 100% !important; height: 100% !important; z-index: 1 !important; } html { -webkit-filter: none !important; filter: none !important; background: var(--dark-purple) !important; color-scheme: dark; } [data-darkreader-mode] { -webkit-filter: none !important; filter: none !important; } [data-darkreader-scheme="dark"] { background: var(--dark-purple) !important; color-scheme: dark; }