@import url("https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700;900&family=Inter:wght@300;400;500&display=swap");*{box-sizing:border-box;padding:0;margin:0}:root{--gold:#c9a84c;--gold-bright:#e8c547;--gold-dim:#8b7332;--dark-void:#0a0a0f;--dark-deep:#0d0d15;--dark-surface:#12121c;--dark-card:#161622;--dark-border:#1e1e2e;--smoke-white:rgba(200,200,220,.04);--text-primary:#e8e6e3;--text-secondary:#8a8a9a;--text-dim:#55556a;--accent-ember:#ff6b35;--accent-crimson:#dc143c;--accent-blue:#1e3a5f}body,html{max-width:100vw;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--dark-void)}body,html{overflow-x:hidden}body{min-height:100vh;color:var(--text-primary);position:relative}.rainbow-bg{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-2;overflow:hidden;background:radial-gradient(ellipse 120% 80% at 50% 0,rgba(30,58,95,.4) 0,transparent 60%),radial-gradient(ellipse 80% 60% at 20% 100%,rgba(139,115,50,.15) 0,transparent 50%),radial-gradient(ellipse 80% 60% at 80% 100%,rgba(139,50,50,.1) 0,transparent 50%),linear-gradient(180deg,#06060c,#0a0a14 30%,#0e0e1a 60%,#0a0a12)}.rainbow-bg:before{bottom:0;left:0;width:100%;height:45%;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1600 600"><polygon points="0,400 150,180 320,320 500,100 680,280 850,60 1020,240 1200,120 1380,300 1600,180 1600,600 0,600" fill="%230C0C18" opacity="0.95"/><polygon points="0,500 200,280 400,400 600,200 800,350 1000,150 1200,320 1400,220 1600,380 1600,600 0,600" fill="%23080812" opacity="0.85"/><polygon points="0,550 300,350 500,480 700,300 900,420 1100,280 1300,400 1600,320 1600,600 0,600" fill="%23060610" opacity="0.9"/></svg>') no-repeat bottom;background-size:cover;z-index:1}.rainbow-bg:after,.rainbow-bg:before{content:"";position:absolute;pointer-events:none}.rainbow-bg:after{top:-20%;left:-20%;width:140%;height:140%;background:radial-gradient(ellipse 700px 500px at 15% 70%,rgba(140,160,200,.08) 0,transparent 60%),radial-gradient(ellipse 600px 400px at 85% 75%,hsla(40,24%,51%,.06) 0,transparent 55%),radial-gradient(ellipse 900px 300px at 50% 90%,rgba(150,150,180,.1) 0,transparent 50%),radial-gradient(ellipse 400px 600px at 30% 40%,rgba(100,120,180,.04) 0,transparent 50%),radial-gradient(ellipse 500px 400px at 70% 30%,rgba(180,140,80,.03) 0,transparent 50%);animation:fogDrift 40s ease-in-out infinite;z-index:2;filter:blur(80px)}@keyframes fogDrift{0%{transform:translateX(-15px) translateY(10px);opacity:.7}25%{transform:translateX(20px) translateY(-15px);opacity:.9}50%{transform:translateX(-10px) translateY(-5px);opacity:.8}75%{transform:translateX(15px) translateY(10px);opacity:1}to{transform:translateX(-15px) translateY(10px);opacity:.7}}body:before{top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse 70% 60% at 50% 50%,transparent 0,rgba(0,0,0,.6) 100%);z-index:9998}body:after,body:before{content:"";position:fixed;pointer-events:none}body:after{top:-50%;left:-50%;width:200%;height:200%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");z-index:9997;animation:grainShift .5s steps(4) infinite;opacity:.5}@keyframes grainShift{0%{transform:translate(0)}25%{transform:translate(-2%,-1%)}50%{transform:translate(1%,2%)}75%{transform:translate(-1%,-2%)}to{transform:translate(0)}}.rainbow-marquee{position:fixed;top:0;left:0;width:100%;height:40px;background:linear-gradient(90deg,rgba(10,10,15,.95),rgba(20,15,10,.95),rgba(10,10,15,.95));z-index:1000;overflow:hidden;display:none;align-items:center;border-bottom:1px solid rgba(201,168,76,.2)}.rainbow-marquee .marquee-track{display:flex;animation:marqueeScroll 25s linear infinite;white-space:nowrap}.rainbow-marquee .marquee-text{font-family:Cinzel,serif;font-size:.85rem;padding:0 60px;color:var(--gold);text-shadow:0 0 20px rgba(201,168,76,.3);font-weight:700;letter-spacing:4px;text-transform:uppercase}@keyframes marqueeScroll{0%{transform:translateX(0)}to{transform:translateX(-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;z-index:1;animation:containerFadeIn 2s ease-out forwards}@keyframes containerFadeIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.main-layout{display:flex;gap:40px;width:100%;max-width:1400px;align-items:flex-start;z-index:1}@media (max-width:1024px){.main-layout{flex-direction:column;align-items:center}}.mute-button{position:fixed;top:20px;right:20px;z-index:10001;background:rgba(20,20,30,.8);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(201,168,76,.3);border-radius:8px;padding:10px 16px;font-size:.7rem;cursor:pointer;transition:all .3s ease;font-family:Cinzel,serif;font-weight:700;color:var(--gold);letter-spacing:2px;text-transform:uppercase}.mute-button:hover{background:rgba(201,168,76,.15);border-color:var(--gold);box-shadow:0 0 30px rgba(201,168,76,.15);transform:translateY(-1px)}.mute-button:active{transform:scale(.97)}.logo{display:flex;justify-content:center;gap:8px;margin-bottom:40px;margin-top:20px;z-index:1;flex-wrap:wrap;align-items:center;animation:logoReveal 2.5s ease-out .3s backwards;position:relative}.logo:before{content:"";position:absolute;width:500px;height:120px;background:radial-gradient(ellipse,rgba(201,168,76,.15) 0,transparent 70%);filter:blur(30px);z-index:-1}@keyframes logoReveal{0%{opacity:0;transform:translateY(-20px) scale(.95);filter:blur(10px)}60%{filter:blur(0)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.logo-letter{font-family:Cinzel,serif;font-size:5.5rem;font-weight:900;color:transparent;background:linear-gradient(180deg,#e8c547,#c9a84c 40%,#8b7332);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 4px 20px rgba(201,168,76,.3));letter-spacing:6px;position:relative}.rainbow-text{color:var(--gold);text-shadow:0 0 40px rgba(201,168,76,.2);font-family:Cinzel,serif;font-weight:700;letter-spacing:3px}.rainbow-border{position:relative;border:1px solid rgba(201,168,76,.2)}.rainbow-border:before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background:linear-gradient(135deg,rgba(201,168,76,.3),rgba(201,168,76,.1),rgba(201,168,76,.3));background-size:200% 200%;border-radius:inherit;z-index:-1;animation:borderGlow 4s ease infinite}@keyframes borderGlow{0%{background-position:0 50%;opacity:.5}50%{background-position:100% 50%;opacity:1}to{background-position:0 50%;opacity:.5}}.main-card{background:linear-gradient(145deg,rgba(22,22,34,.9),rgba(18,18,28,.95));border-radius:24px;padding:40px;z-index:1;max-width:520px;width:100%;flex-shrink:0;box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 0 1px rgba(201,168,76,.1),inset 0 1px 0 hsla(0,0%,100%,.03);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(201,168,76,.08);animation:cardReveal 1.8s ease-out .5s backwards;position:relative;overflow:hidden}.main-card:before{content:"";position:absolute;top:0;left:20%;right:20%;height:1px;background:linear-gradient(90deg,transparent,rgba(201,168,76,.4),transparent)}.main-card:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 50% 0,rgba(201,168,76,.03) 0,transparent 50%);pointer-events:none;z-index:-1}@keyframes cardReveal{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.main-card-content{display:flex;flex-direction:column;gap:24px;align-items:center;width:100%}.bool-display{flex-shrink:0;width:100%}.bool-display,.bool-frame{display:flex;justify-content:center}.bool-frame{background:linear-gradient(145deg,rgba(30,30,45,.8),rgba(20,20,30,.9));border-radius:16px;padding:8px;align-items:center;box-shadow:0 20px 50px rgba(0,0,0,.5),inset 0 1px 0 hsla(0,0%,100%,.05);border:1px solid rgba(201,168,76,.15);position:relative;overflow:hidden}.bool-image{width:200px;height:200px;border-radius:12px;object-fit:cover;box-shadow:0 10px 30px rgba(0,0,0,.4)}.input-section{flex:1 1;flex-direction:column;gap:18px;min-width:0}.copy-ca-section,.input-section{display:flex;width:100%;align-items:center}.copy-ca-section{background:rgba(201,168,76,.04);border-radius:14px;padding:14px 16px;justify-content:space-between;gap:12px;border:1px solid rgba(201,168,76,.12);transition:border-color .3s ease}.copy-ca-section:hover{border-color:rgba(201,168,76,.25)}.ca-label{font-family:Cinzel,serif;font-size:.75rem;color:var(--gold);font-weight:700;letter-spacing:2px;white-space:nowrap}.ca-address{flex:1 1;font-family:SF Mono,Fira Code,monospace;font-size:.65rem;color:var(--text-secondary);background:rgba(0,0,0,.3);padding:8px 12px;border-radius:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid hsla(0,0%,100%,.04)}.copy-btn{background:linear-gradient(135deg,rgba(201,168,76,.2),rgba(201,168,76,.1));border:1px solid rgba(201,168,76,.3);border-radius:8px;padding:8px 18px;font-family:Cinzel,serif;font-size:.7rem;font-weight:700;color:var(--gold);cursor:pointer;transition:all .3s ease;letter-spacing:1px;white-space:nowrap}.copy-btn:hover{background:linear-gradient(135deg,rgba(201,168,76,.3),rgba(201,168,76,.2));border-color:var(--gold);box-shadow:0 0 20px rgba(201,168,76,.15);transform:translateY(-1px)}.copy-btn.copied{background:linear-gradient(135deg,rgba(40,167,69,.3),rgba(40,167,69,.2));border-color:rgba(40,167,69,.5);color:#4ade80}.create-title{display:flex;gap:4px;margin-bottom:10px;justify-content:center}.create-letter{font-family:Cinzel,serif;font-size:2.6rem;color:transparent;background:linear-gradient(180deg,#e8c547,#c9a84c 50%,#8b7332);-webkit-background-clip:text;background-clip:text;font-weight:900;letter-spacing:3px;filter:drop-shadow(0 2px 10px rgba(201,168,76,.2))}.prompt-container{background:rgba(0,0,0,.3);border-radius:14px;padding:2px;width:100%;border:1px solid rgba(201,168,76,.12);transition:all .3s ease}.prompt-container:focus-within{border-color:rgba(201,168,76,.4);box-shadow:0 0 30px rgba(201,168,76,.08)}.prompt-input{width:100%;padding:16px 20px;font-size:1rem;font-family:Inter,sans-serif;border:none;background:transparent;color:var(--text-primary);outline:none;font-weight:400;letter-spacing:.3px}.prompt-input::placeholder{color:var(--text-dim);font-style:italic}.generate-btn{background:linear-gradient(135deg,#c9a84c,#a88a3e,#8b7332);border:none;border-radius:14px;padding:16px 50px;font-family:Cinzel,serif;font-size:1.4rem;font-weight:900;color:#0a0a0f;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 10px 40px rgba(201,168,76,.25),0 2px 10px rgba(201,168,76,.15),inset 0 1px 0 hsla(0,0%,100%,.2);width:100%;max-width:400px;letter-spacing:3px;text-transform:uppercase;position:relative;overflow:hidden}.generate-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.15),transparent);transition:left .6s ease}.generate-btn:hover:before{left:100%}.generate-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 20px 60px rgba(201,168,76,.35),0 5px 20px rgba(201,168,76,.2),inset 0 1px 0 hsla(0,0%,100%,.2)}.generate-btn:active:not(:disabled){transform:translateY(-1px)}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.generate-btn.loading{animation:loadingPulse 1.5s ease-in-out infinite}@keyframes loadingPulse{0%,to{box-shadow:0 10px 40px rgba(201,168,76,.25)}50%{box-shadow:0 10px 60px rgba(201,168,76,.45),0 0 40px rgba(201,168,76,.15)}}.legend-description{margin-top:10px;padding:24px 28px;background:rgba(201,168,76,.03);border-left:2px solid rgba(201,168,76,.3);border-radius:0 12px 12px 0;max-width:500px;text-align:left}.legend-description p{font-family:Inter,sans-serif;font-size:.9rem;color:var(--text-secondary);line-height:1.8;font-weight:300;letter-spacing:.2px}.message{padding:12px 20px;border-radius:12px;font-family:Cinzel,serif;font-size:.9rem;text-align:center;font-weight:600;letter-spacing:1px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.error-message{background:rgba(220,20,60,.1);border:1px solid rgba(220,20,60,.3);color:#ff6b6b}.success-message{background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.3);color:#4ade80;animation:successGlow 2s ease-out}@keyframes successGlow{0%{box-shadow:0 0 40px rgba(74,222,128,.3)}to{box-shadow:none}}.gallery-section{z-index:1;flex:1 1;min-width:0;padding:0;animation:cardReveal 1.8s ease-out .8s backwards}@media (max-width:1024px){.gallery-section{margin-top:50px;padding:0;width:100%}}.gallery-title{font-family:Cinzel,serif;font-size:2.2rem;text-align:center;margin-bottom:30px;color:var(--gold);text-shadow:0 0 40px rgba(201,168,76,.15);position:relative;display:inline-block;width:100%;letter-spacing:4px;font-weight:900}.gallery-title:after{content:"";display:block;width:120px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:12px auto 0;opacity:.4}.bool-count{font-size:1.1rem;color:var(--text-secondary);font-weight:400}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:16px;gap:16px;justify-items:center}.gallery-card{background:rgba(22,22,34,.8);border-radius:16px;padding:12px;text-align:center;transition:all .4s cubic-bezier(.4,0,.2,1);width:100%;max-width:190px;cursor:pointer;box-shadow:0 8px 30px rgba(0,0,0,.3);border:1px solid rgba(201,168,76,.06);position:relative;overflow:hidden}.gallery-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at 50% 0,rgba(201,168,76,.08) 0,transparent 60%);opacity:0;transition:opacity .4s ease;pointer-events:none}.gallery-card:hover:before{opacity:1}.gallery-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 50px rgba(0,0,0,.4),0 0 30px rgba(201,168,76,.08);border-color:rgba(201,168,76,.2)}.gallery-card-image{width:100%;aspect-ratio:1;border-radius:12px;object-fit:cover;border:1px solid hsla(0,0%,100%,.05);transition:all .4s ease}.gallery-card:hover .gallery-card-image{border-color:rgba(201,168,76,.2)}.gallery-card-prompt{margin-top:10px;font-size:.8rem;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.gallery-card-date,.gallery-card-prompt{font-family:Inter,sans-serif;font-weight:400}.gallery-card-date{margin-top:4px;font-size:.65rem;color:var(--text-dim)}.empty-gallery{text-align:center;color:var(--text-secondary);padding:80px 40px;background:rgba(22,22,34,.4);border-radius:24px;border:1px dashed rgba(201,168,76,.15)}.empty-gallery p{font-family:Inter,sans-serif;font-weight:300;letter-spacing:.5px}.empty-gallery-icon{font-size:0;margin-bottom:0}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.92);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;z-index:20000;padding:20px;animation:modalFadeIn .3s ease-out}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:linear-gradient(145deg,var(--dark-card),var(--dark-surface));border-radius:24px;padding:32px;max-width:500px;width:100%;position:relative;border:1px solid rgba(201,168,76,.15);box-shadow:0 40px 100px rgba(0,0,0,.5);animation:modalSlideUp .4s cubic-bezier(.4,0,.2,1)}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1);color:var(--text-secondary);font-size:1rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:rgba(220,20,60,.2);border-color:rgba(220,20,60,.4);color:#ff6b6b}.modal-image-container{display:flex;justify-content:center;margin-bottom:20px}.modal-image{width:100%;max-width:400px;border-radius:16px;border:1px solid hsla(0,0%,100%,.05)}.modal-info{text-align:center;margin-bottom:20px}.modal-prompt{font-family:Cinzel,serif;font-size:1.1rem;color:var(--text-primary);margin-bottom:8px;font-weight:700}.modal-date{font-size:.8rem;color:var(--text-dim);font-family:Inter,sans-serif}.modal-download{width:100%;background:linear-gradient(135deg,#c9a84c,#a88a3e);border:none;border-radius:14px;padding:14px;font-family:Cinzel,serif;font-size:1rem;font-weight:900;color:#0a0a0f;cursor:pointer;letter-spacing:3px;transition:all .3s ease;box-shadow:0 8px 25px rgba(201,168,76,.2)}.modal-download:hover{transform:translateY(-2px);box-shadow:0 12px 35px rgba(201,168,76,.3)}.load-more-trigger{padding:40px;text-align:center}.loading-more{display:flex;flex-direction:column;align-items:center;gap:15px;color:var(--text-secondary);font-family:Inter,sans-serif;font-weight:300;letter-spacing:1px;font-size:.9rem}.rainbow-spinner{width:40px;height:40px;border:2px solid rgba(201,168,76,.1);border-top:2px solid var(--gold);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.no-more-bools{color:var(--text-dim);font-family:Cinzel,serif;font-size:.9rem;font-weight:700;letter-spacing:2px}.rainbow-footer{margin-top:60px;padding:30px 20px;display:flex;flex-direction:column;align-items:center;gap:16px;position:relative}.rainbow-footer:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(201,168,76,.2),transparent)}.social-link{background:rgba(201,168,76,.08);padding:12px 28px;border-radius:12px;color:var(--gold);text-decoration:none;font-family:Cinzel,serif;font-weight:700;font-size:.8rem;transition:all .3s ease;letter-spacing:2px;border:1px solid rgba(201,168,76,.15)}.social-link:hover{background:rgba(201,168,76,.15);border-color:rgba(201,168,76,.3);box-shadow:0 0 30px rgba(201,168,76,.1);transform:translateY(-2px)}.footer-text{color:var(--text-dim);font-family:Cinzel,serif;font-weight:400;letter-spacing:2px;font-size:.75rem}.face-upload-section{width:100%}.face-upload-input{display:none}.face-upload-label{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 20px;border:1px dashed rgba(201,168,76,.25);border-radius:14px;background:rgba(201,168,76,.03);cursor:pointer;transition:all .3s ease}.face-upload-label:hover{border-color:rgba(201,168,76,.5);background:rgba(201,168,76,.06);box-shadow:0 0 20px rgba(201,168,76,.05)}.face-upload-icon{font-family:Inter,sans-serif;font-size:1.3rem;font-weight:300;color:var(--gold);width:32px;height:32px;border-radius:50%;border:1px solid rgba(201,168,76,.3);display:flex;align-items:center;justify-content:center;line-height:1}.face-upload-text{font-family:Cinzel,serif;font-size:.7rem;font-weight:700;color:var(--text-dim);letter-spacing:2px}.face-preview-container{display:flex;align-items:center;gap:15px;padding:10px 15px;border:1px solid rgba(201,168,76,.2);border-radius:14px;background:rgba(201,168,76,.04)}.face-preview-image{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid rgba(201,168,76,.3)}.face-remove-btn{margin-left:auto;background:rgba(220,20,60,.15);border:1px solid rgba(220,20,60,.3);border-radius:8px;padding:8px 16px;font-family:Cinzel,serif;font-size:.7rem;font-weight:700;color:#ff6b6b;cursor:pointer;transition:all .3s ease;letter-spacing:1px}.face-remove-btn:hover{background:rgba(220,20,60,.25);border-color:rgba(220,20,60,.5);transform:translateY(-1px)}@media (max-width:768px){.app-container{padding:30px 16px 80px}.logo-letter{font-size:3rem}.main-card{padding:24px;max-width:100%;width:100%}.bool-image{width:150px;height:150px}.create-letter{font-size:1.6rem}.prompt-input{font-size:.95rem}.generate-btn{font-size:1.2rem;width:100%;padding:14px 30px}.copy-ca-section{flex-wrap:wrap;justify-content:center}.ca-address{width:100%;text-align:center;font-size:.6rem}.gallery-card{max-width:150px}.gallery-title{font-size:1.6rem}.mute-button{font-size:.6rem;padding:8px 12px;top:15px;right:15px}}