@import url("https://fonts.googleapis.com/css2?family=Luckiest+Guy&display=swap");*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;font-family:Luckiest Guy,cursive,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}body,html{overflow-x:hidden}body{min-height:100vh;color:#fff;position:relative}.rainbow-bg{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(-45deg,red,#ff7f00,#ff0,#0f0,#00f,indigo,#8f00ff,red);background-size:400% 400%;animation:rainbowShift 8s ease infinite;z-index:-2}@keyframes rainbowShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.rainbow-marquee{position:fixed;top:0;left:0;width:100%;height:40px;background:rgba(0,0,0,.8);z-index:1000;overflow:hidden;display:flex;align-items:center}.rainbow-marquee .marquee-track{display:flex;animation:marqueeScroll 20s linear infinite;white-space:nowrap}.rainbow-marquee .marquee-text{font-family:Luckiest Guy,cursive;font-size:1.2rem;padding:0 50px;background:linear-gradient(90deg,red,#ff7f00,#ff0,#0f0,#00f,#8f00ff,red);background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:textRainbow 3s linear infinite}@keyframes marqueeScroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes textRainbow{0%{background-position:0 50%}to{background-position:200% 50%}}.app-container{position:relative;width:100%;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:60px 20px 80px}.rainbow-text{background:linear-gradient(90deg,red,#ff7f00,#ff0,#0f0,#00f,#8f00ff,red);background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:textRainbow 3s linear infinite}.rainbow-border{position:relative;border:4px solid transparent;background-clip:padding-box}.rainbow-border:before{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;background:linear-gradient(45deg,red,#ff7f00,#ff0,#0f0,#00f,#8f00ff,red);background-size:400% 400%;border-radius:inherit;z-index:-1;animation:borderRainbow 3s linear infinite}@keyframes borderRainbow{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.logo{display:flex;justify-content:center;gap:8px;margin-bottom:20px;margin-top:20px;z-index:1}.logo-letter{font-family:Luckiest Guy,cursive;font-size:5rem;font-weight:400;text-shadow:4px 4px 0 #000,-2px -2px 0 #000,2px -2px 0 #000,-2px 2px 0 #000;animation:letterBounce 2s ease-in-out infinite,letterRainbow 2s linear infinite}.logo-letter:first-child{animation-delay:0s}.logo-letter:nth-child(2){animation-delay:.1s}.logo-letter:nth-child(3){animation-delay:.2s}.logo-letter:nth-child(4){animation-delay:.3s}.logo-letter:nth-child(5){animation-delay:.4s}@keyframes letterBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes letterRainbow{0%{color:red}14%{color:#ff7f00}28%{color:#ff0}42%{color:#0f0}57%{color:#00f}71%{color:indigo}85%{color:#8f00ff}to{color:red}}.main-card{background:hsla(0,0%,100%,.95);border-radius:25px;padding:35px;z-index:1;max-width:900px;width:95%;box-shadow:0 10px 40px rgba(0,0,0,.3);margin-top:20px}.main-card-content{display:flex;gap:30px;align-items:stretch;width:100%}.bool-display{flex-shrink:0}.bool-frame{background:linear-gradient(45deg,red,#ff7f00,#ff0,#0f0,#00f,#8f00ff);background-size:400% 400%;animation:borderRainbow 3s linear infinite;border-radius:15px;padding:5px;display:flex;align-items:center;justify-content:center}.bool-image{width:120px;height:120px;border-radius:12px;object-fit:cover}.input-section{flex:1 1;display:flex;flex-direction:column;gap:15px;min-width:0;width:100%}.copy-ca-section{background:rgba(0,0,0,.8);border-radius:15px;padding:12px 15px;display:flex;align-items:center;justify-content:space-between;gap:10px}.ca-label{font-family:Luckiest Guy,cursive;font-size:1rem;color:#fff}.ca-address{flex:1 1;font-family:monospace;font-size:.75rem;color:#fff;background:hsla(0,0%,100%,.1);padding:8px 12px;border-radius:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-btn{background:linear-gradient(45deg,#0f0,#0c0);border:none;border-radius:10px;padding:10px 20px;font-family:Luckiest Guy,cursive;font-size:.9rem;color:#fff;cursor:pointer;text-shadow:1px 1px 0 #000;transition:all .2s ease}.copy-btn:hover{transform:scale(1.05)}.copy-btn.copied{background:linear-gradient(45deg,#08f,#06c)}.create-title{display:flex;gap:5px;margin-bottom:5px}.create-letter{font-family:Luckiest Guy,cursive;font-size:2.5rem;text-shadow:3px 3px 0 #000;animation:letterRainbow 2s linear infinite}.create-letter:first-child{animation-delay:0s}.create-letter:nth-child(2){animation-delay:.1s}.create-letter:nth-child(3){animation-delay:.2s}.create-letter:nth-child(4){animation-delay:.3s}.create-letter:nth-child(5){animation-delay:.4s}.create-letter:nth-child(6){animation-delay:.5s}.prompt-container{background:#fff;border-radius:15px;padding:5px}.prompt-input{width:100%;padding:15px 20px;font-size:1.3rem;font-family:Luckiest Guy,cursive;border:none;background:transparent;color:#333;outline:none}.prompt-input::placeholder{color:rgba(0,0,0,.4)}.generate-btn{background:linear-gradient(45deg,red,#ff7f00,#ff0,#0f0,#00f,#8f00ff);background-size:300% 300%;animation:buttonRainbow 3s linear infinite;border:none;border-radius:15px;padding:18px 30px;font-family:Luckiest Guy,cursive;font-size:2rem;color:#fff;cursor:pointer;text-shadow:2px 2px 0 #000;transition:all .2s ease;box-shadow:0 5px 20px rgba(0,0,0,.3)}@keyframes buttonRainbow{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.generate-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 8px 30px rgba(0,0,0,.4)}.generate-btn:disabled{opacity:.7;cursor:not-allowed}.generate-btn.loading{animation:buttonRainbow 1s linear infinite,pulse .5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.gallery-row{display:flex;gap:10px;margin-top:20px;padding-top:20px;border-top:3px solid rgba(0,0,0,.1);width:100%;justify-content:center;align-items:center;flex-wrap:wrap}.gallery-item{flex-shrink:0;width:80px;height:80px;border-radius:12px;overflow:hidden;border:3px solid;border-image:linear-gradient(45deg,red,#ff7f00,#ff0,#0f0) 1;background:#222;cursor:pointer;transition:all .3s ease}.gallery-item:hover{transform:scale(1.15);z-index:10}.gallery-item img{width:100%;height:100%;object-fit:cover}.message{padding:12px 20px;border-radius:10px;font-family:Luckiest Guy,cursive;font-size:1rem;text-align:center}.error-message{background:rgba(255,0,0,.2);border:2px solid red;color:red}.success-message{background:rgba(0,255,0,.2);border:2px solid #0f0;color:#0a0}.gallery-section{margin-top:40px;z-index:1;width:100%;max-width:1000px}.gallery-title{font-family:Luckiest Guy,cursive;font-size:2.5rem;text-align:center;margin-bottom:30px;text-shadow:3px 3px 0 #000}.bool-count{font-size:1.5rem}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:20px;gap:20px;justify-items:center}.gallery-card{background:hsla(0,0%,100%,.95);border-radius:20px;padding:15px;text-align:center;transition:all .3s ease;width:100%;max-width:180px;cursor:pointer;box-shadow:0 5px 20px rgba(0,0,0,.2)}.gallery-card:hover{transform:translateY(-10px) scale(1.05);box-shadow:0 15px 40px rgba(0,0,0,.3)}.gallery-card-image{width:120px;height:120px;border-radius:15px;object-fit:cover;border:3px solid;border-image:linear-gradient(45deg,red,#ff7f00,#ff0,#0f0) 1}.gallery-card-prompt{margin-top:10px;font-size:.85rem;color:#333;font-family:sans-serif;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gallery-card-date{margin-top:5px;font-size:.7rem;color:#666;font-family:sans-serif}.empty-gallery{text-align:center;color:#fff;padding:60px 40px;background:rgba(0,0,0,.3);border-radius:20px}.empty-gallery-icon{font-size:4rem;margin-bottom:20px}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.modal-content{background:#fff;border-radius:25px;padding:30px;max-width:500px;width:100%;position:relative}.modal-close{position:absolute;top:15px;right:15px;width:40px;height:40px;border-radius:50%;background:red;border:none;color:#fff;font-size:1.2rem;cursor:pointer}.modal-image-container{display:flex;justify-content:center;margin-bottom:20px}.modal-image{width:100%;max-width:350px;border-radius:15px}.modal-info{text-align:center;margin-bottom:20px}.modal-prompt{font-family:Luckiest Guy,cursive;font-size:1.3rem;color:#333;margin-bottom:10px}.modal-date{font-size:.9rem;color:#666}.modal-download{width:100%;background:linear-gradient(45deg,#0f0,#0c0);border:none;border-radius:15px;padding:15px;font-family:Luckiest Guy,cursive;font-size:1.3rem;color:#fff;cursor:pointer;text-shadow:1px 1px 0 #000}.modal-download:hover{transform:scale(1.02)}.load-more-trigger{padding:40px;text-align:center}.loading-more{display:flex;flex-direction:column;align-items:center;gap:15px;color:#fff}.rainbow-spinner{width:50px;height:50px;border:5px solid transparent;border-color:red #ff0 #0f0 #00f;border-style:solid;border-width:5px;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.no-more-bools{color:#fff;font-family:Luckiest Guy,cursive;font-size:1.2rem}.rainbow-footer{margin-top:40px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:15px}.social-link{background:rgba(0,0,0,.5);padding:12px 25px;border-radius:25px;color:#fff;text-decoration:none;font-family:Luckiest Guy,cursive;transition:all .2s ease}.social-link:hover{background:rgba(0,0,0,.8);transform:scale(1.05)}.footer-text{color:#fff;font-family:Luckiest Guy,cursive;text-shadow:2px 2px 0 #000}@media (max-width:768px){.logo-letter{font-size:3rem}.main-card{padding:20px}.main-card-content{flex-direction:column;align-items:center}.bool-image{width:100px;height:100px}.create-letter{font-size:1.8rem}.prompt-input{font-size:1rem}.generate-btn{font-size:1.4rem;width:100%}.copy-ca-section{flex-wrap:wrap;justify-content:center}.ca-address{width:100%;text-align:center}.gallery-item{width:60px;height:60px}.gallery-card{max-width:140px}.gallery-card-image{width:100px;height:100px}}