.landing-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;position:relative;overflow:hidden;background:radial-gradient(ellipse 80% 70% at 50% 50%,#501419e6,#280a0c99 40%,#0a0000,#000)}.landing-content{max-width:560px;text-align:center;z-index:2;position:relative}.landing-top-right{position:absolute;top:1.5rem;right:1.5rem;display:flex;align-items:center;gap:1rem;z-index:10}.icon-btn{color:#ffffffd9;padding:.35rem;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:color .2s ease}.icon-btn:hover{color:#fff}.lang-switcher{display:flex;align-items:center;gap:.25rem}.lang-option{background:none;border:none;font-size:.75rem;font-weight:600;letter-spacing:.05em;color:#fff9;padding:.25rem .5rem;cursor:pointer;transition:color .2s ease}.lang-option:hover{color:#ffffffe6}.lang-option.active{color:#fff}.logo-container{margin-bottom:1.5rem}.perle-labs-logo{width:140px;height:auto;display:block;margin:0 auto}.event-tag{display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.15em;color:#c44;border:1px solid #a33;padding:.4rem 1rem;margin-bottom:2rem;text-transform:uppercase}.main-heading{font-family:Cormorant Garamond,"Noto Serif SC",serif;font-size:clamp(2.25rem,5vw,3.25rem);font-weight:600;color:#fff;line-height:1.25;margin-bottom:1.5rem}.headline-line{display:block}.body-text{font-size:.95rem;line-height:1.7;color:#ffffffbf;margin-bottom:2.5rem;max-width:420px;margin-left:auto;margin-right:auto}.cta-button{font-size:.9rem;font-weight:700;letter-spacing:.12em;padding:.9rem 2rem;background:#000;color:#fff;border:1px solid rgba(255,255,255,.9);border-radius:2px;text-transform:uppercase;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;box-shadow:0 0 20px #00000080;transition:box-shadow .2s ease,border-color .2s ease}.cta-button:hover{border-color:#fff;box-shadow:0 0 28px #ffffff26}.cta-arrow{font-size:.85em;opacity:.9}@media (max-width: 768px){.landing-page{padding:1.5rem}.landing-top-right{top:1rem;right:1rem}.main-heading{font-size:2rem}.body-text{font-size:.9rem}.cta-button{font-size:.8rem;padding:.8rem 1.5rem;letter-spacing:.1em}}@media (max-width: 480px){.perle-labs-logo{width:110px}.event-tag{font-size:.65rem;padding:.35rem .75rem}}.upload-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:radial-gradient(ellipse 90% 80% at 50% 50%,#3c1419f2,#2d0f12e6,#2a0c0e)}.upload-card{width:100%;max-width:440px;background:#1c1c1efa;border-radius:20px;padding:2rem 2rem 2.25rem;text-align:center;box-shadow:0 0 0 1px #ffffff0f,0 24px 48px #00000080;position:relative}.upload-title{font-size:1.5rem;font-weight:800;letter-spacing:.12em;color:#fff;margin-bottom:.5rem;text-transform:uppercase}.upload-subtitle{font-size:.7rem;font-weight:600;letter-spacing:.1em;color:#b85c52;margin-bottom:1.75rem;text-transform:uppercase}.upload-area{margin-bottom:1.5rem}.upload-placeholder{width:100%;min-height:220px;background:#2c2c2ee6;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease;border:1px solid rgba(255,255,255,.06)}.upload-placeholder:hover{background:#343437f2}.upload-circle{width:64px;height:64px;background:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.plus-icon{font-size:2rem;color:#fff;font-weight:300;line-height:1}.upload-hint{font-size:.85rem;font-weight:600;letter-spacing:.08em;color:#fff;margin-bottom:.35rem;text-transform:uppercase}.upload-formats{font-size:.7rem;color:#ffffff80;text-transform:uppercase;letter-spacing:.06em}.preview-container{width:100%;min-height:220px;position:relative;border-radius:14px;overflow:hidden;cursor:pointer;background:#1c1c1e;border:1px solid rgba(255,255,255,.08)}.preview-image{width:100%;height:100%;min-height:220px;object-fit:cover}.preview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease}.preview-container:hover .preview-overlay{opacity:1}.change-text{font-size:.8rem;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.05em}.error-message{color:#e85c52;font-size:.8rem;margin-bottom:1rem}.continue-button{display:block;width:100%;font-size:.85rem;font-weight:700;letter-spacing:.1em;padding:.85rem 1.5rem;background:#000;color:#fff;border:1px solid rgba(255,255,255,.9);border-radius:2px;text-transform:uppercase;cursor:pointer;margin-bottom:1.25rem;transition:box-shadow .2s ease,border-color .2s ease}.continue-button:hover{border-color:#fff;box-shadow:0 0 20px #ffffff1a}.cancel-link{background:none;border:none;color:#ffffffb3;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.5rem;cursor:pointer;transition:color .2s ease}.cancel-link:hover{color:#fff}@media (max-width: 480px){.upload-page{padding:1rem}.upload-card{padding:1.5rem 1.25rem}.upload-title{font-size:1.25rem}.upload-placeholder,.preview-container,.preview-image{min-height:180px}}.loading-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,#0a0000,#2d0a0a,#0a0000);position:relative;overflow:hidden}.loading-content{text-align:center;z-index:10}.loader-container{position:relative;width:150px;height:150px;margin:0 auto 3rem}.spinner{position:absolute;width:100%;height:100%;border:4px solid rgba(139,0,0,.3);border-top:4px solid #FFD700;border-radius:50%;animation:spin 1.5s linear infinite}.spinner-glow{position:absolute;width:100%;height:100%;border-radius:50%;box-shadow:0 0 50px #ffd70080,inset 0 0 50px #dc143c4d;animation:pulse 2s ease-in-out infinite}.loading-message{font-size:1.5rem;font-weight:600;color:gold;margin-bottom:2rem;animation:fadeInMessage .5s ease-in-out;text-shadow:0 2px 15px rgba(255,215,0,.5)}@keyframes fadeInMessage{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loading-dots{display:flex;justify-content:center;gap:.75rem}.dot{width:12px;height:12px;background:#dc143c;border-radius:50%;animation:dotBounce 1.4s ease-in-out infinite}.dot:nth-child(1){animation-delay:0s}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}@keyframes dotBounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}.fortune-particles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.particle{position:absolute;font-size:1.5rem;opacity:0;animation:floatUp 5s ease-in-out infinite}@keyframes floatUp{0%{opacity:0;transform:translateY(100vh) rotate(0)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(-100px) rotate(360deg)}}.error-container{max-width:500px;padding:3rem 2rem;background:#8b000033;border:2px solid #DC143C;border-radius:20px;text-align:center}.error-icon{font-size:4rem;margin-bottom:1.5rem}.error-title{font-size:2rem;font-weight:800;color:gold;margin-bottom:1rem}.error-text{font-size:1.125rem;color:#d4d4d4;line-height:1.6;margin-bottom:2rem}.retry-button{font-size:1rem;font-weight:700;letter-spacing:1px;padding:1rem 3rem;background:linear-gradient(135deg,gold,orange);color:#0a0000;border-radius:50px;text-transform:uppercase;transition:all .3s ease}.retry-button:hover{transform:translateY(-2px);box-shadow:0 8px 30px #ffd70080}@media (max-width: 768px){.loader-container{width:120px;height:120px}.loading-message,.particle{font-size:1.25rem}.error-title{font-size:1.75rem}.error-text{font-size:1rem}}.fortune-card{width:100%;max-width:500px;background:linear-gradient(135deg,#2d0a0a,#1a0000,#0a0000);border:3px solid #FFD700;border-radius:24px;padding:2rem;box-shadow:0 20px 60px #000c,0 0 80px #ffd70033;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.fortune-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 30%,rgba(220,20,60,.15) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,215,0,.1) 0%,transparent 50%);pointer-events:none}.fortune-card:hover{transform:translateY(-5px);box-shadow:0 25px 70px #000000e6,0 0 100px #ffd7004d;border-color:orange}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:1px;position:relative;z-index:1}.genesis-text{font-weight:600}.hash-text{font-family:Courier New,monospace}.avatar-section{display:flex;flex-direction:column;align-items:center;margin-bottom:2rem;position:relative;z-index:1}.avatar-container{width:220px;height:220px;border-radius:50%;border:5px solid;overflow:hidden;box-shadow:0 15px 50px #00000080;position:relative}.avatar-image{width:100%;height:100%;object-fit:cover}.rarity-badge{margin-top:-20px;padding:.5rem 1.5rem;border-radius:20px;font-size:.875rem;font-weight:800;color:#000;text-transform:uppercase;letter-spacing:2px;box-shadow:0 4px 15px #00000080;z-index:2}.identity-section{text-align:center;margin-bottom:2rem;position:relative;z-index:1}.identity-name{font-size:2rem;font-weight:900;color:gold;margin-bottom:.5rem;text-shadow:0 2px 20px rgba(255,215,0,.5);letter-spacing:1px}.identity-class{font-size:.875rem;color:#aaa;text-transform:uppercase;letter-spacing:2px}.stats-section{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;background:#8b000026;border-radius:16px;border:1px solid rgba(220,20,60,.3);position:relative;z-index:1}.stat-group{display:flex;flex-direction:column;gap:.5rem}.stat-label{font-size:.75rem;color:#666;text-transform:uppercase;letter-spacing:1px;font-weight:600}.stat-value{font-size:1rem;font-weight:700;color:#fff}.stat-multiplier{font-size:.875rem;color:gold;font-weight:600}.color-display{display:flex;align-items:center;gap:.5rem}.color-dot{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.3);box-shadow:0 2px 10px #00000080}.color-hex{font-size:.875rem;color:#aaa;font-family:Courier New,monospace}.fortune-section{margin-bottom:1.5rem;position:relative;z-index:1}.fortune-text{font-size:.9rem;line-height:1.7;color:#ccc;font-style:italic;text-align:center}.card-footer{display:flex;justify-content:center;position:relative;z-index:1}.footer-line{width:100px;height:3px;background:linear-gradient(90deg,transparent,#FFD700,transparent);border-radius:2px}@media (max-width: 768px){.fortune-card{padding:1.5rem}.avatar-container{width:180px;height:180px}.identity-name{font-size:1.75rem}.stats-section{gap:1rem;padding:1rem}.fortune-text{font-size:.85rem}}@media (max-width: 480px){.fortune-card{padding:1.25rem}.card-header{font-size:.7rem}.avatar-container{width:160px;height:160px}.identity-name{font-size:1.5rem}.stats-section{grid-template-columns:1fr;gap:1.5rem}.stat-group:first-child{padding-bottom:1rem;border-bottom:1px solid rgba(220,20,60,.3)}}.tweet-submission{width:100%;max-width:500px;background:#8b000033;border:2px solid #DC143C;border-radius:20px;padding:2rem;text-align:center}.submission-title{font-size:1.5rem;font-weight:800;color:gold;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:1px}.submission-subtitle{font-size:.95rem;color:#ccc;margin-bottom:2rem;line-height:1.6}.submission-form{display:flex;flex-direction:column;gap:1rem}.tweet-input{width:100%;padding:1rem 1.5rem;background:#00000080;border:2px solid rgba(220,20,60,.5);border-radius:12px;color:#fff;font-size:.95rem;transition:all .3s ease}.tweet-input::placeholder{color:#666}.tweet-input:focus{border-color:gold;box-shadow:0 0 20px #ffd70033}.tweet-input:disabled{opacity:.5;cursor:not-allowed}.submission-error{font-size:.875rem;color:#f44;margin:0}.submit-button{width:100%;font-size:1rem;font-weight:700;letter-spacing:1px;padding:1rem 2rem;background:linear-gradient(135deg,#dc143c,#8b0000);color:gold;border-radius:50px;text-transform:uppercase;transition:all .3s ease;border:2px solid transparent}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,gold,orange);color:#0a0000;border-color:gold;transform:translateY(-2px);box-shadow:0 8px 25px #ffd70066}.submit-button:disabled{opacity:.6;cursor:not-allowed}.success-state{padding:3rem 2rem}.success-icon{font-size:4rem;margin-bottom:1rem}.success-title{font-size:2rem;font-weight:900;color:gold;margin-bottom:1rem;text-transform:uppercase}.success-message{font-size:1.125rem;color:#ccc;line-height:1.7;margin-bottom:2rem}.fortune-symbols-small{display:flex;justify-content:center;gap:1.5rem;font-size:2rem;animation:float 3s ease-in-out infinite}.fortune-symbols-small span{display:inline-block;animation:bounce 2s ease-in-out infinite}.fortune-symbols-small span:nth-child(2){animation-delay:.2s}.fortune-symbols-small span:nth-child(3){animation-delay:.4s}@media (max-width: 768px){.tweet-submission{padding:1.5rem}.submission-title{font-size:1.25rem}.tweet-input{padding:.875rem 1.25rem;font-size:.9rem}.submit-button{padding:.875rem 1.5rem;font-size:.95rem}.success-icon{font-size:3rem}.success-title{font-size:1.75rem}.success-message{font-size:1rem}}.card-display-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,#0a0000,#1a0505,#0a0000);position:relative;overflow-y:auto}.card-display-content{max-width:600px;width:100%;display:flex;flex-direction:column;align-items:center;gap:2rem;z-index:10;padding:1rem 0}.share-button{width:100%;max-width:500px;font-size:1.125rem;font-weight:700;letter-spacing:1px;padding:1.25rem 2rem;background:linear-gradient(135deg,gold,orange);color:#0a0000;border-radius:50px;text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:.75rem;box-shadow:0 8px 30px #ffd70066;transition:all .3s ease}.share-button:hover{transform:translateY(-3px);box-shadow:0 12px 40px #ffd70099}.share-icon{font-size:1.5rem;font-weight:400}@media (max-width: 768px){.card-display-page{padding:1rem}.share-button{font-size:1rem;padding:1rem 1.5rem}}@media (max-width: 480px){.card-display-page{padding:.5rem}.card-display-content{gap:1.5rem}}.expanded-pfp-view{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem;animation:fadeIn .3s ease-out}.expanded-pfp-content{max-width:600px;width:100%;display:flex;flex-direction:column;align-items:center;gap:2rem;position:relative}.close-button-top{position:absolute;top:-50px;right:0;width:40px;height:40px;background:#8b000080;border:2px solid #DC143C;border-radius:50%;color:gold;font-size:1.5rem;display:flex;align-items:center;justify-content:center;transition:all .3s ease;cursor:pointer}.close-button-top:hover{background:#dc143ccc;border-color:gold;transform:rotate(90deg)}.expanded-avatar-container{position:relative;width:100%;max-width:500px;aspect-ratio:1}.expanded-avatar{width:100%;height:100%;object-fit:cover;border-radius:20px;box-shadow:0 25px 80px #000c,0 0 100px #ffd7004d}.decorative-frame{position:absolute;top:-15px;right:-15px;bottom:-15px;left:-15px;pointer-events:none}.frame-corner{position:absolute;width:60px;height:60px;border:4px solid #FFD700}.frame-corner.tl{top:0;left:0;border-right:none;border-bottom:none;border-radius:20px 0 0}.frame-corner.tr{top:0;right:0;border-left:none;border-bottom:none;border-radius:0 20px 0 0}.frame-corner.bl{bottom:0;left:0;border-right:none;border-top:none;border-radius:0 0 0 20px}.frame-corner.br{bottom:0;right:0;border-left:none;border-top:none;border-radius:0 0 20px}.expanded-actions{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:400px}.download-button{width:100%;font-size:1.125rem;font-weight:700;letter-spacing:1px;padding:1rem 2rem;background:linear-gradient(135deg,gold,orange);color:#0a0000;border-radius:50px;text-transform:uppercase;transition:all .3s ease;box-shadow:0 8px 30px #ffd70066}.download-button:hover{transform:translateY(-3px);box-shadow:0 12px 40px #ffd70099}.close-link{background:none;color:#888;font-size:.875rem;text-transform:uppercase;letter-spacing:1px;padding:.75rem 1.5rem;transition:color .3s ease}.close-link:hover{color:#dc143c}@media (max-width: 768px){.expanded-pfp-view{padding:1rem}.close-button-top{top:-45px;width:36px;height:36px;font-size:1.25rem}.frame-corner{width:50px;height:50px}.download-button{font-size:1rem;padding:.875rem 1.75rem}}@media (max-width: 480px){.close-button-top{top:10px;right:10px}.decorative-frame{top:-10px;right:-10px;bottom:-10px;left:-10px}.frame-corner{width:40px;height:40px;border-width:3px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app{min-height:100vh;width:100%;position:relative;background:radial-gradient(ellipse at top,#2d0a0a,#0a0000,#000)}.cny-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;opacity:.03;background-image:radial-gradient(circle at 20% 30%,rgba(220,20,60,.1) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,215,0,.1) 0%,transparent 50%);pointer-events:none}.lantern-decoration{position:fixed;width:40px;height:60px;background:linear-gradient(180deg,#dc143c,#8b0000);border-radius:20px;opacity:.15;animation:sway 4s ease-in-out infinite;z-index:0}.lantern-decoration:before{content:"";position:absolute;top:-10px;left:50%;transform:translate(-50%);width:2px;height:10px;background:gold}.lantern-decoration:after{content:"";position:absolute;bottom:-15px;left:50%;transform:translate(-50%);width:20px;height:15px;background:gold;border-radius:0 0 10px 10px}@keyframes sway{0%,to{transform:translate(0) rotate(-5deg)}50%{transform:translate(10px) rotate(5deg)}}.page-enter{opacity:0;transform:translateY(30px)}.page-enter-active{opacity:1;transform:translateY(0);transition:all .6s ease-out}.page-exit{opacity:1;transform:translateY(0)}.page-exit-active{opacity:0;transform:translateY(-30px);transition:all .4s ease-in}@media (max-width: 768px){.lantern-decoration{width:30px;height:45px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0000;color:#fff;overflow-x:hidden}#root{min-height:100vh;width:100%}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#1a0000}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#8b0000,#dc143c);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#dc143c,gold)}.no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-fade-in{animation:fadeIn .5s ease-out forwards}.animate-slide-in{animation:slideInFromBottom .6s ease-out forwards}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:all .3s ease}button:disabled{cursor:not-allowed;opacity:.5}input{font-family:inherit;outline:none;border:none}img{max-width:100%;height:auto;display:block}
