:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;color:#f5f5f7;background-color:#05040c;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#7b5eff;text-decoration:inherit}a:hover{color:#9b85ff}body{margin:0;min-width:320px;min-height:100vh;background-color:transparent}button{font-family:inherit}.auth-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;z-index:3000;display:flex;align-items:center;justify-content:center}.auth-box{background:#1a1a1a;border-radius:16px;padding:40px;width:100%;max-width:400px;border:1px solid #2a2a2a;position:relative}.auth-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:8px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#999;font-size:1.4rem;cursor:pointer;display:grid;place-items:center;transition:all .15s}.auth-close:hover{background:#ffffff1f;color:#fff}.auth-title{font-size:1.5rem;font-weight:600;margin-bottom:30px;text-align:center;color:#fff}.auth-input{width:100%;padding:14px 16px;background:#0f0f0f;border:1px solid #333;border-radius:10px;color:#fff;font-size:1rem;margin-bottom:15px;outline:none;box-sizing:border-box}.auth-input:focus{border-color:#667eea}.auth-btn{width:100%;padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;font-size:1rem;font-weight:500;cursor:pointer;margin-top:10px}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-switch{text-align:center;margin-top:20px;color:#666}.auth-switch a{color:#667eea;cursor:pointer;margin-left:4px}.auth-error{color:#ef4444;font-size:.9rem;margin-bottom:15px;text-align:center}.fre-overlay{position:fixed;inset:0;background:#000000d9;backdrop-filter:blur(10px);z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px}.fre-stage{width:100%;max-width:720px;display:flex;flex-direction:column;align-items:center;gap:16px}.fre-header{width:100%;text-align:center}.fre-title{font-size:1.6rem;font-weight:700;color:#fff;margin-bottom:10px}.fre-subtitle{color:#c8c8ce;font-size:.98rem;line-height:1.5}.fre-email{color:#fff;font-weight:700}.fre-deck{width:min(420px,100%);height:min(520px,70vh);position:relative}.fre-deck-inner{position:relative;width:100%;height:100%}.fre-card{position:absolute;inset:0;border-radius:22px;overflow:hidden;background:linear-gradient(160deg,#221f2deb,#181521f5);border:1px solid rgba(255,255,255,.08);box-shadow:0 26px 60px #00000080,0 0 40px #735aff38;cursor:grab;user-select:none}.fre-card-static{cursor:default}.fre-card-image{height:72%;width:100%;background-size:cover;background-position:center;background-repeat:no-repeat}.fre-card-meta{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px}.fre-card-style{font-size:.95rem;font-weight:700;color:#fff}.fre-card-greeting{color:#cfd2e4;font-size:.9rem}.fre-card-hint{color:#ffffff8c;font-size:.82rem;margin-top:4px}.fre-close{padding:10px 18px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:#f5f5f7;cursor:pointer;transition:all .2s}.fre-close:hover{background:#ffffff1f;border-color:#ffffff2e}.fre-swipe-btn{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:#ffffff1f;border:1px solid rgba(255,255,255,.15);color:#fff;font-size:1.6rem;font-weight:300;cursor:pointer;z-index:10;transition:all .2s;display:grid;place-items:center;backdrop-filter:blur(6px)}.fre-swipe-btn:hover{background:#ffffff38;transform:translateY(-50%) scale(1.08)}.fre-swipe-btn-left{left:-60px}.fre-swipe-btn-right{right:-60px}@media(max-width:580px){.fre-swipe-btn-left{left:-12px}.fre-swipe-btn-right{right:-12px}}.fre-card-cta{position:relative;inset:auto;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.fre-cta-plus{width:80px;height:80px;border-radius:24px;display:grid;place-items:center;font-size:3rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#7c5bff,#6a4fe9,#4b7bff);box-shadow:0 18px 40px #6457ff80}.fre-cta-title{font-size:1.3rem;font-weight:700;color:#fff;text-align:center}.fre-cta-subtitle{color:#c8c8ce;font-size:.95rem;text-align:center}.fre-cta-btn{margin-top:8px;width:min(320px,90%);padding:14px 16px;background:linear-gradient(135deg,#7c5bff,#6a4fe9,#4b7bff);border:none;border-radius:14px;color:#fff;font-size:1rem;font-weight:700;cursor:pointer;box-shadow:0 12px 30px #6457ff73;transition:transform .15s,box-shadow .2s,opacity .2s}.fre-cta-btn:hover{transform:translateY(-1px);box-shadow:0 16px 34px #6457ff8c}@media(max-width:520px){.fre-deck{height:min(520px,62vh)}.fre-title{font-size:1.45rem}}.site-footer{position:relative;z-index:1;padding:24px 0 16px;margin-top:48px}.footer-content{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.beian-link{display:flex;align-items:center;gap:6px;color:#888;font-size:12px;text-decoration:none;transition:color .2s}.beian-link:hover{color:#aaa}.beian-icon{width:14px;height:14px;object-fit:contain}.footer-divider{color:#555;font-size:12px}.copyright{color:#888;font-size:12px}.landing-page{position:fixed;inset:0;background:radial-gradient(circle at 50% 30%,#1f1635,#120d22 45%,#090712 70%,#05040c);z-index:2000;display:flex;align-items:center;justify-content:center;overflow:hidden}.landing-content{display:flex;flex-direction:column;align-items:center;width:100%;max-width:1200px;padding:40px 24px;position:relative;z-index:1}.landing-brand{display:flex;align-items:center;gap:16px;margin-bottom:12px}.landing-logo{width:84px;height:84px;min-width:84px;min-height:84px;aspect-ratio:1 / 1;object-fit:cover;object-position:center center;border-radius:12px;flex-shrink:0;box-shadow:0 16px 44px #5b3bff73;display:block}.landing-title{font-size:2.2rem;font-weight:700;color:#fff;margin:0;letter-spacing:.5px}.landing-tagline{font-size:1.15rem;color:#ffffffb3;margin:0 0 48px;text-align:center}.gallery-container{width:100%;height:420px;perspective:1200px;perspective-origin:50% 50%;margin-bottom:32px;overflow:visible;position:relative;z-index:1}.gallery-track{position:relative;width:100%;height:100%;transform-style:preserve-3d;display:flex;align-items:center;justify-content:center;pointer-events:none}.gallery-card{position:absolute;width:280px;transition:all .6s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d;cursor:pointer;pointer-events:auto}.gallery-card-inner{position:relative;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px #00000080,0 0 40px #735aff26;border:1px solid rgba(255,255,255,.1)}.gallery-card.active .gallery-card-inner{box-shadow:0 30px 80px #0009,0 0 60px #735aff4d;border-color:#fff3}.gallery-image{width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;display:block}.gallery-reflection{position:absolute;bottom:-100%;left:0;right:0;height:100%;background-size:cover;background-position:bottom;transform:scaleY(-1);opacity:.15;mask-image:linear-gradient(to bottom,rgba(0,0,0,.4) 0%,transparent 40%);-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.4) 0%,transparent 40%);pointer-events:none}.gallery-label{text-align:center;margin-top:14px;font-size:.95rem;font-weight:600;color:#fffc;opacity:0;transform:translateY(6px);transition:all .3s ease}.gallery-card.active .gallery-label{opacity:1;transform:translateY(0)}.gallery-dots{display:flex;gap:10px;margin-bottom:36px;position:relative;z-index:10}.gallery-dot{width:10px;height:10px;border-radius:50%;background:#ffffff40;border:none;cursor:pointer;transition:all .25s;padding:0}.gallery-dot:hover{background:#ffffff73}.gallery-dot.active{background:linear-gradient(135deg,#7c5bff,#6a4fe9);transform:scale(1.2);box-shadow:0 0 12px #7c5bff99}.landing-cta{position:relative;z-index:100;padding:18px 48px;font-size:1.15rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#7c5bff,#6a4fe9,#4b7bff);border:none;border-radius:14px;cursor:pointer;box-shadow:0 16px 40px #6457ff80;transition:transform .2s,box-shadow .2s}.landing-cta:hover{transform:translateY(-2px);box-shadow:0 20px 50px #6457ff99}.landing-hint{margin-top:16px;font-size:.9rem;color:#ffffff73}@media(max-width:768px){.landing-logo{width:68px;height:68px;object-fit:cover}.landing-title{font-size:1.6rem}.landing-tagline{font-size:1rem;margin-bottom:32px}.gallery-container{height:340px}.gallery-card{width:200px}.landing-cta{padding:16px 36px;font-size:1.05rem}}@media(max-width:480px){.gallery-card{width:160px}.gallery-container{height:280px}}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px}.toast{display:flex;align-items:center;gap:10px;padding:14px 20px;border-radius:12px;background:#1a1a1a;border:1px solid #333;color:#fff;font-size:.95rem;animation:slideIn .3s ease;box-shadow:0 4px 20px #0006}.toast-icon{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700}.toast-success{border-color:#22c55e}.toast-success .toast-icon{background:#22c55e;color:#fff}.toast-error{border-color:#ef4444}.toast-error .toast-icon{background:#ef4444;color:#fff}.toast-info{border-color:#667eea}.toast-info .toast-icon{background:#667eea;color:#fff}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.generate-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;backdrop-filter:blur(12px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:40px;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.generate-modal-content{max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column;align-items:center;position:relative;animation:modalSlideUp .3s ease}@keyframes modalSlideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.generate-modal-close{position:absolute;top:-50px;right:-10px;background:none;border:none;color:#fff;font-size:2.5rem;cursor:pointer;opacity:.6;transition:opacity .2s;width:50px;height:50px}.generate-modal-close:hover{opacity:1}.generate-modal-img{max-width:100%;max-height:55vh;object-fit:contain;border-radius:16px;box-shadow:0 25px 80px #0009}.generate-modal-info{margin-top:20px;padding:20px 24px;background:#1a1a1af2;border-radius:12px;border:1px solid #333;width:100%;max-width:600px}.generate-modal-style{display:inline-block;padding:5px 12px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;font-size:.8rem;margin-bottom:10px}.generate-modal-text{color:#ccc;font-size:.95rem;line-height:1.6;white-space:pre-wrap;word-break:break-word}.generate-modal-actions{display:flex;gap:12px;margin-top:20px}.modal-btn{padding:12px 24px;background:#282828e6;border:1px solid #444;border-radius:10px;color:#fff;font-size:.95rem;cursor:pointer;transition:all .2s}.modal-btn:hover{background:#3c3c3ce6;border-color:#555}.modal-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none}.modal-btn.primary:hover{opacity:.9}.modal-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.generate-modal{padding:20px}.generate-modal-img{max-height:45vh}.generate-modal-actions{flex-wrap:wrap}.modal-btn{flex:1;min-width:100px}}.style-cards-container{--glow-color: #7c5bff;position:relative;padding:8px 0 12px;margin:0 -8px;&:before{content:"";position:absolute;inset:-20px -40px;background:radial-gradient(ellipse 60% 80% at 50% 60%,color-mix(in srgb,var(--glow-color) 12%,transparent),transparent 70%);pointer-events:none;transition:background .5s ease;z-index:0}}.style-cards-scroll{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;padding:12px 8px 16px;position:relative;z-index:1}.style-card{flex-shrink:0;width:72px;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;background:transparent;border:none;cursor:pointer;padding:8px;border-radius:16px;transition:transform .25s cubic-bezier(.34,1.56,.64,1);outline:none}.style-card-icon{width:56px;height:56px;border-radius:14px;background-size:cover;background-position:center;border:2px solid rgba(255,255,255,.1);box-shadow:0 4px 12px #0000004d;transition:transform .25s cubic-bezier(.34,1.56,.64,1),border-color .2s ease,box-shadow .3s ease}.style-card-label{font-size:.75rem;font-weight:500;color:#ffffffb3;transition:color .2s ease}.style-card-check{position:absolute;top:4px;right:4px;width:18px;height:18px;background:linear-gradient(135deg,#7c5bff,#6a4fe9);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;color:#fff;z-index:3;box-shadow:0 2px 6px #0000004d;animation:checkPop .3s cubic-bezier(.34,1.56,.64,1)}@keyframes checkPop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.style-card:hover{transform:translateY(-4px)}.style-card:hover .style-card-icon{transform:scale(1.08);border-color:#ffffff40}.style-card:hover .style-card-label{color:#fff}.style-card.selected{--card-glow: #7c5bff}.style-card.selected .style-card-icon{transform:scale(1.12);border-color:var(--card-glow);box-shadow:0 0 20px color-mix(in srgb,var(--card-glow) 50%,transparent),0 0 40px color-mix(in srgb,var(--card-glow) 25%,transparent),0 8px 20px #00000059}.style-card.selected .style-card-label{color:#fff;font-weight:600}.style-card:focus-visible .style-card-icon{outline:2px solid #7c5bff;outline-offset:2px}.style-card--cyber.selected .style-card-icon{animation:cyberPulse 2s ease-in-out infinite}@keyframes cyberPulse{0%,to{box-shadow:0 0 20px #00e5ff80,0 0 40px #00e5ff40,0 8px 20px #00000059}50%{box-shadow:0 0 25px #00e5ff99,0 0 50px #00e5ff4d,0 8px 20px #00000059}}.style-card--polco .style-card-icon{background-size:cover}.style-card--polco.selected .style-card-icon{animation:polcoShimmer 3s ease-in-out infinite}@keyframes polcoShimmer{0%,to{filter:brightness(1) saturate(1)}50%{filter:brightness(1.1) saturate(1.1)}}.inspiration-tray{width:100%;min-height:120px;margin:20px 0;padding:20px;border:2px dashed rgba(255,255,255,.15);border-radius:16px;background:linear-gradient(135deg,#1e1b2699,#191620cc),repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,.01) 10px,rgba(255,255,255,.01) 20px);transition:all .3s ease;position:relative;overflow:visible}.inspiration-tray:not(.disabled):hover{border-color:#7c5bff66;background:linear-gradient(135deg,#231f2db3,#1c1926d9),repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(124,91,255,.02) 10px,rgba(124,91,255,.02) 20px)}.inspiration-tray.dragging{border-color:#7c5bffb3;background:linear-gradient(135deg,#322d41cc,#231e32e6);box-shadow:0 0 30px #7c5bff33,inset 0 0 60px #7c5bff0d;transform:scale(1.01)}.inspiration-tray.disabled{opacity:.6;cursor:not-allowed}.inspiration-tray.has-photos{min-height:160px;padding:24px}.tray-file-input{display:none}.tray-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;padding:20px}.tray-icon{font-size:2.5rem;filter:grayscale(.3);transition:transform .3s ease,filter .3s ease}.inspiration-tray:hover .tray-icon{transform:scale(1.1) rotate(-5deg);filter:grayscale(0)}.tray-text{font-size:1rem;color:#fff9;font-weight:500}.tray-hint{font-size:.8rem;color:#ffffff59}.photo-scatter{display:flex;flex-wrap:wrap;gap:16px;padding:10px;justify-content:center;align-items:center;min-height:110px}.scattered-photo{position:relative;width:100px;height:100px;transform:rotate(var(--rotation, 0deg)) translate(var(--offset-x, 0px),var(--offset-y, 0px));transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease;z-index:calc(var(--stack-index, 0) + 1)}.scattered-photo:hover{transform:rotate(0) translateY(-8px) scale(1.08);z-index:100}.photo-image{width:100%;height:100%;object-fit:cover;border-radius:4px;border:3px solid #fff;box-shadow:0 4px 12px #0000004d,0 1px 3px #0003,var(--photo-glow, none);filter:var(--photo-filter, none);transition:filter .4s ease,box-shadow .4s ease;background:#222}.paper-clip{position:absolute;top:-12px;left:50%;transform:translate(-50%) rotate(-5deg);width:20px;height:30px;z-index:10}.clip-body{width:100%;height:100%;border:2.5px solid #a0a0a0;border-radius:10px 10px 5px 5px;background:transparent;position:relative}.clip-body:before{content:"";position:absolute;top:8px;left:3px;right:3px;height:12px;border:2px solid #a0a0a0;border-radius:4px;border-top:none}.clip-body:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:10px;height:6px;background:linear-gradient(to bottom,silver,#909090);border-radius:0 0 3px 3px}.washi-tape{position:absolute;background:var(--tape-color, rgba(255, 200, 200, .7));z-index:10;pointer-events:none}.washi-tape.top{top:-8px;left:50%;transform:translate(-50%) rotate(-2deg);width:70px;height:18px;border-radius:1px;background:linear-gradient(90deg,transparent 0%,var(--tape-color) 5%,var(--tape-color) 95%,transparent 100%);box-shadow:0 1px 2px #0000001a}.washi-tape.top:before,.washi-tape.top:after{content:"";position:absolute;top:0;width:6px;height:100%;background:linear-gradient(90deg,rgba(0,0,0,.05),transparent)}.washi-tape.top:before{left:0}.washi-tape.top:after{right:0;transform:scaleX(-1)}.washi-tape.corner-tl{top:-4px;left:-4px;width:35px;height:14px;transform:rotate(-45deg);border-radius:1px}.washi-tape.corner-br{bottom:-4px;right:-4px;width:35px;height:14px;transform:rotate(-45deg);border-radius:1px}.photo-remove{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;background:#ef4444e6;border:2px solid #fff;color:#fff;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.8);transition:opacity .2s,transform .2s;z-index:20;line-height:1;padding:0}.scattered-photo:hover .photo-remove{opacity:1;transform:scale(1)}.photo-remove:hover{background:#ef4444;transform:scale(1.1)}.add-more-btn{width:80px;height:80px;border:2px dashed rgba(255,255,255,.2);border-radius:12px;background:#ffffff08;color:#fff6;font-size:2rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.add-more-btn:hover{border-color:#7c5bff80;background:#7c5bff1a;color:#ffffffb3;transform:scale(1.05)}.inspiration-tray[data-style*=复古] .photo-image{filter:sepia(.4) brightness(.95) contrast(1.05) saturate(.85)}.inspiration-tray[data-style*=波普] .photo-image{filter:saturate(1.3) contrast(1.1) brightness(1.05);box-shadow:0 4px 12px #0000004d,0 0 20px #e040fb66,0 0 40px #ff69b433}.inspiration-tray[data-style*=水彩] .photo-image{filter:brightness(1.05) saturate(.9) contrast(.95)}.inspiration-tray[data-style*=极简] .photo-image{filter:grayscale(.2) brightness(1.1) contrast(.95)}.inspiration-tray[data-style*=涂鸦] .photo-image{filter:saturate(1.2) brightness(1.05)}.inspiration-tray[data-style*=赛博] .photo-image{filter:brightness(.9) contrast(1.2) saturate(1.1);box-shadow:0 4px 12px #0000004d,0 0 15px #00e5ff99,0 0 30px #e040fb4d}@media(max-width:600px){.scattered-photo{width:80px;height:80px}.add-more-btn{width:60px;height:60px;font-size:1.5rem}.photo-scatter{gap:12px}}.date-stamper{position:relative;display:inline-block}.stamp-trigger{display:flex;align-items:center;gap:6px;padding:6px 12px;border:none;border-radius:6px;background:#ffffff14;color:#ffffffb3;font-size:12px;font-family:Courier New,monospace;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:1px}.stamp-trigger:hover{background:#ffffff26;color:#ffffffe6;transform:translateY(-1px)}.stamp-trigger.has-date{background:#c8505033;color:#e88;border:1px dashed rgba(200,80,80,.4)}.stamp-icon{font-size:14px;animation:stamp-hover 2s ease-in-out infinite}@keyframes stamp-hover{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.stamp-trigger:hover .stamp-icon{animation:stamp-roll .3s ease-in-out}@keyframes stamp-roll{0%{transform:translateY(0)}25%{transform:translateY(-3px)}50%{transform:translateY(0)}75%{transform:translateY(-2px)}to{transform:translateY(0)}}.stamp-mark{position:absolute;top:-8px;right:-8px;padding:3px 8px;background:#b43c3c26;border:2px solid rgba(180,60,60,.4);border-radius:3px;transform:rotate(-8deg);pointer-events:none;box-shadow:inset 0 0 8px #b43c3c1a,2px 2px 4px #0003}.stamp-date{font-family:Courier New,monospace;font-size:9px;font-weight:700;color:#b43c3ccc;text-transform:uppercase;letter-spacing:.5px}.stamp-calendar{position:absolute;top:calc(100% + 8px);right:0;padding:16px;background:#1e1e23f2;backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 32px #0006;z-index:100;min-width:200px}.calendar-header{font-size:14px;color:#fffc;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.calendar-input{width:100%;padding:10px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:14px;outline:none;transition:all .2s ease}.calendar-input:focus{border-color:#ffffff4d;background:#ffffff1f}.calendar-input::-webkit-calendar-picker-indicator{filter:invert(1);cursor:pointer}.calendar-actions{display:flex;gap:8px;margin-top:12px}.calendar-actions button{flex:1;padding:8px 12px;border:none;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s ease}.btn-today{background:#ffffff1a;color:#ffffffb3}.btn-today:hover{background:#fff3;color:#fff}.btn-confirm{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-confirm:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.date-stamper.vintage .stamp-mark{background:#8b5a2b33;border-color:#8b5a2b80}.date-stamper.vintage .stamp-date{color:#8b5a2be6}.date-stamper.pop .stamp-mark{background:#ff69b433;border-color:#ff69b480;transform:rotate(5deg)}.date-stamper.pop .stamp-date{color:#ff69b4e6}.date-stamper.watercolor .stamp-mark{background:#64b48c26;border-color:#64b48c66;border-style:dotted}.date-stamper.watercolor .stamp-date{color:#64b48ce6}.date-stamper.minimal .stamp-mark{background:transparent;border:1px solid rgba(100,100,100,.5);border-radius:0;transform:rotate(0)}.date-stamper.minimal .stamp-date{color:#646464e6}.date-stamper.doodle .stamp-mark{background:#ffc83233;border:2px dashed rgba(255,150,50,.6);transform:rotate(-12deg)}.date-stamper.doodle .stamp-date{color:#ff9632e6;font-family:Comic Sans MS,cursive}.date-stamper.cyber .stamp-mark{background:#00ffff1a;border:1px solid rgba(0,255,255,.5);box-shadow:0 0 8px #00ffff4d}.date-stamper.cyber .stamp-date{color:#00ffffe6;text-shadow:0 0 4px rgba(0,255,255,.5)}.generator{width:100%;display:flex;justify-content:center}.generator.single-panel{max-width:860px;width:100%;margin:0 auto 12px}.panel{--input-bg: linear-gradient(180deg, #1d1a24 0%, #1d1a24 100%);--input-text-color: #fff;--glow-color: #7c5bff;width:100%;background:linear-gradient(160deg,#221f2de6,#181521f0);border-radius:20px;padding:26px 28px 30px;border:1px solid rgba(255,255,255,.06);box-shadow:0 25px 50px #00000073,0 0 40px #735aff40;transition:box-shadow .4s ease}.panel:has(.chameleon-input){box-shadow:0 25px 50px #00000073,0 0 60px color-mix(in srgb,var(--glow-color) 20%,transparent)}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel-header .panel-title{margin-bottom:0}.panel-title{font-size:.95rem;font-weight:600;color:#e4e4ea;margin-bottom:12px}.panel textarea.chameleon-input{width:100%;height:150px;background:var(--input-bg);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:18px;color:var(--input-text-color);font-size:.98rem;resize:none;outline:none;font-family:inherit;box-sizing:border-box;box-shadow:inset 0 0 0 1px #ffffff08;transition:background .4s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}.panel textarea.chameleon-input::placeholder{color:color-mix(in srgb,var(--input-text-color) 50%,transparent);transition:color .4s ease}.panel textarea.chameleon-input:focus{border-color:var(--glow-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--glow-color) 25%,transparent)}.styles{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.style-chip{padding:8px 16px;background:#19171f;border:1px solid rgba(255,255,255,.08);border-radius:16px;color:#c1c1c8;cursor:pointer;font-size:.9rem;transition:all .2s;min-width:70px}.style-chip:hover{background:#1f1b26;color:#fff}.style-chip.active{background:linear-gradient(135deg,#7c5bff,#6a4fe9);border-color:transparent;color:#fff;box-shadow:0 12px 24px #6850ff59}.generate-btn{width:100%;padding:16px;background:linear-gradient(135deg,#7c5bff,#6a4fe9,#4b7bff);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .2s,opacity .2s;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 12px 30px #6457ff73}.generate-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 16px 34px #6457ff8c}.generate-btn:disabled{opacity:.7;cursor:not-allowed}@keyframes breathe{0%,to{background-position:0% 50%;box-shadow:0 8px 24px #7c5bff66}50%{background-position:100% 50%;box-shadow:0 12px 32px #4b7bff80}}.generate-btn.breathing{background:linear-gradient(90deg,#7c5bff,#9d7aff,#4b7bff,#7c5bff,#9d7aff,#4b7bff);background-size:300% 100%;animation:breathe 2.5s ease-in-out infinite;border:1px solid rgba(255,255,255,.15)}.generate-btn .btn-message{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generate-btn:hover .btn-message{white-space:normal;overflow:visible;text-overflow:unset;word-break:break-word}.progress-container{margin-top:16px;width:100%}.progress-bar{width:100%;height:6px;background:#ffffff14;border-radius:4px;overflow:hidden;position:relative;box-shadow:0 0 12px #7c5bff4d,inset 0 1px 2px #0000004d}.progress-fill{height:100%;background:linear-gradient(90deg,#7c5bff,#a855f7,#7c5bff);border-radius:4px;transition:width .5s ease;position:relative;box-shadow:0 0 8px #7c5bff99,0 0 20px #a855f766}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);animation:streamLight 1.5s ease-in-out infinite}@keyframes streamLight{0%{transform:translate(-100%)}to{transform:translate(200%)}}.progress-stage{margin-top:10px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:.82rem;color:#a0a0b8}.stage-dot{width:6px;height:6px;background:#7c5bff;border-radius:50%;animation:stagePulse 1s ease-in-out infinite;box-shadow:0 0 6px #7c5bff99}@keyframes stagePulse{0%,to{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}.stage-text{opacity:.9;letter-spacing:.02em}.btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.result-area{min-height:300px;background:#0f0f0f;border-radius:16px;display:flex;align-items:center;justify-content:center;overflow:hidden}.result-area.has-image{background:transparent}.result-image{max-width:100%;max-height:450px;border-radius:12px}.placeholder{text-align:center;color:#444}.placeholder-icon{font-size:3rem;margin-bottom:15px}.loading{text-align:center;color:#666}.spinner{width:40px;height:40px;border:3px solid #333;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 15px}@keyframes spin{to{transform:rotate(360deg)}}.error{color:#ef4444;text-align:center}.actions{display:flex;gap:10px;margin-top:15px}.action-btn{flex:1;padding:12px;background:#222;border:1px solid #333;border-radius:10px;color:#fff;cursor:pointer;font-size:.9rem}.action-btn:hover{background:#333}.action-btn.save-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none}.action-btn.save-btn:hover{opacity:.9}.image-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;backdrop-filter:blur(10px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:40px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.image-modal-content{max-width:900px;width:100%;max-height:90vh;display:flex;flex-direction:column;position:relative}.image-modal-close{position:absolute;top:-40px;right:0;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;opacity:.7;transition:opacity .2s;width:40px;height:40px}.image-modal-close:hover{opacity:1}.image-modal-img{max-width:100%;max-height:60vh;object-fit:contain;border-radius:16px;box-shadow:0 20px 60px #00000080}.image-modal-info{margin-top:24px;padding:24px;background:#1a1a1ae6;border-radius:12px;border:1px solid #333}.image-modal-style{display:inline-block;padding:6px 14px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;font-size:.85rem;margin-bottom:12px}.image-modal-text{color:#e0e0e0;font-size:1.05rem;line-height:1.7;white-space:pre-wrap;word-break:break-word}.image-modal-date{color:#666;font-size:.85rem;margin-top:16px;padding-top:16px;border-top:1px solid #333}@media(max-width:768px){.image-modal{padding:20px}.image-modal-img{max-height:50vh}.image-modal-info{padding:16px}}.confirm-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:overlayFadeIn .2s ease-out}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.confirm-modal{position:relative;background:#111117f2;backdrop-filter:blur(20px);border:1px solid rgba(239,68,68,.3);border-radius:16px;padding:32px;width:90%;max-width:380px;text-align:center;box-shadow:0 0 40px #ef44441a,0 25px 50px -12px #00000080;animation:modalSlideIn .3s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-glow{position:absolute;bottom:-50%;left:50%;transform:translate(-50%);width:200%;height:100%;background:radial-gradient(ellipse at center,rgba(239,68,68,.15) 0%,transparent 70%);pointer-events:none}.confirm-icon{width:56px;height:56px;margin:0 auto 20px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#ef4444;animation:iconShake .5s ease-in-out .2s}.confirm-icon svg{width:28px;height:28px}@keyframes iconShake{0%,to{transform:rotate(0)}20%{transform:rotate(-8deg)}40%{transform:rotate(8deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(5deg)}}.confirm-title{font-size:1.25rem;font-weight:600;color:#fff;margin:0 0 8px;letter-spacing:.02em}.confirm-message{font-size:.9rem;color:#ffffff80;margin:0 0 28px;line-height:1.5}.confirm-buttons{display:flex;gap:12px;justify-content:center}.confirm-btn-cancel{flex:1;padding:12px 20px;background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#ffffffb3;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.confirm-btn-cancel:hover{background:#ffffff0d;border-color:#ffffff40;color:#fff}.confirm-btn-destroy{flex:1;padding:12px 20px;background:linear-gradient(135deg,#dc2626,#ef4444);border:none;border-radius:10px;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 15px #ef44444d}.confirm-btn-destroy:hover{transform:scale(1.03);background:linear-gradient(135deg,#b91c1c,#dc2626);box-shadow:0 6px 20px #ef444466}.confirm-btn-destroy:active{transform:scale(.98)}.history-section{margin:56px auto 0;position:relative;background:repeating-linear-gradient(0deg,transparent,transparent 29px,rgba(255,255,255,.012) 29px,rgba(255,255,255,.012) 30px),repeating-linear-gradient(90deg,transparent,transparent 29px,rgba(255,255,255,.012) 29px,rgba(255,255,255,.012) 30px),radial-gradient(ellipse at 50% 0%,rgba(139,92,246,.06) 0%,transparent 60%);padding:20px 20px 20px 0;border-radius:20px}.history-empty{color:#9a9a9f;text-align:center;padding:40px}.section-title{font-size:1.25rem;font-weight:700;color:#f2f2f5;margin-bottom:28px;margin-left:80px}.timeline-container{position:relative;margin-left:35px}.timeline-thread{position:absolute;left:18px;top:0;bottom:0;width:4px;background:repeating-linear-gradient(to bottom,rgba(180,140,100,.5) 0px,rgba(180,140,100,.5) 8px,transparent 8px,transparent 14px)}.timeline-pin{position:absolute;left:8px;top:-8px;font-size:1.4rem;z-index:10;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3));transform:rotate(-15deg)}.timeline-month{position:relative;margin-bottom:50px;padding-left:50px}.timeline-month-header{display:flex;align-items:center;margin-bottom:20px;margin-left:-10px}.timeline-month-label{font-size:.9rem;font-weight:700;color:#b48c64e6;letter-spacing:.15em;text-transform:uppercase;padding:6px 16px;background:#b48c641a;border:1px dashed rgba(180,140,100,.3);border-radius:4px;font-family:Georgia,serif}.day-row{display:flex;align-items:flex-start;margin-bottom:28px;position:relative}.timeline-node{flex-shrink:0;width:36px;height:36px;margin-left:-43px;margin-right:12px;margin-top:60px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;background:#1e1b26f2;border:2px solid rgba(180,140,100,.5);border-radius:50%;z-index:5;position:relative}.timeline-node:after{content:"";position:absolute;left:100%;top:50%;width:18px;height:2px;background:repeating-linear-gradient(to right,rgba(180,140,100,.4) 0px,rgba(180,140,100,.4) 4px,transparent 4px,transparent 8px)}.timeline-day{position:absolute;left:-43px;top:100px;width:36px;text-align:center;font-size:.7rem;font-weight:600;color:#b48c64b3;font-family:Georgia,serif}.cards-row{display:flex;flex-wrap:wrap;gap:18px;flex:1}.history-card{flex:0 0 300px;max-width:300px;background:#1e1b26f2;border-radius:6px;overflow:hidden;cursor:pointer;position:relative;border:1px solid rgba(255,255,255,.08);transform:rotate(var(--rotation, 0deg));transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease,z-index 0s;z-index:1;box-shadow:2px 3px 8px #0000004d,0 1px 3px #0003}.history-card:before{content:"";position:absolute;top:-4px;left:50%;transform:translate(-50%) rotate(var(--tape-rotation, 0deg));width:50px;height:18px;background:linear-gradient(135deg,#ffebb459,#ffdc9640);border-radius:2px;z-index:10;opacity:.7}.history-card:hover{transform:rotate(0) translateY(-8px) scale(1.03);box-shadow:0 20px 40px #00000080,0 8px 16px #8b5cf626;z-index:100}.history-card img{width:100%;aspect-ratio:1;object-fit:cover;filter:saturate(.95);transition:filter .2s}.history-card:hover img{filter:saturate(1.05)}.history-card-info{padding:10px 12px 12px;background:#14121999}.history-card-text{font-size:.85rem;color:#e1e1e5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}.history-card-time{font-size:.72rem;color:#8a8a94;margin-top:4px;font-family:Courier New,monospace}.history-card-delete{position:absolute;top:14px;right:8px;background:#000000b3;border:none;color:#fff;width:26px;height:26px;border-radius:50%;cursor:pointer;opacity:0;transition:opacity .2s,background .2s;font-size:1.1rem;line-height:1;z-index:20}.history-card:hover .history-card-delete{opacity:1}.history-card-delete:hover{background:#ef4444cc}@media(max-width:640px){.section-title{margin-left:60px}.timeline-container{margin-left:25px}.timeline-thread{left:12px}.timeline-pin{left:2px;font-size:1.2rem}.timeline-month{padding-left:40px}.timeline-node{width:30px;height:30px;margin-left:-35px;font-size:.95rem}.timeline-day{left:-35px;width:30px}.history-card{flex:0 0 160px;max-width:160px}.cards-row{gap:12px}}.load-more-container{display:flex;justify-content:center;padding:30px 0 20px;margin-left:-20px}.load-more-btn{padding:12px 32px;background:#b48c6426;border:1px dashed rgba(180,140,100,.4);border-radius:8px;color:#b48c64e6;font-size:.9rem;font-family:Georgia,serif;cursor:pointer;transition:all .2s ease}.load-more-btn:hover:not(:disabled){background:#b48c6440;border-color:#b48c6499;transform:translateY(-2px)}.load-more-btn:disabled{opacity:.6;cursor:not-allowed}*{margin:0;padding:0;box-sizing:border-box}body{color:#f5f5f7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;min-height:100vh;background:radial-gradient(circle at 50% 32%,#1f1635,#120d22 45%,#090712 70%,#05040c)}.app{min-height:100vh;padding:48px 24px 96px;position:relative;overflow:hidden}.app:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,rgba(111,66,193,.08) 0px,rgba(111,66,193,.08) 180px,transparent 180px,transparent 320px);pointer-events:none;transform:translate(-10%)}.app:after{content:"";position:absolute;bottom:28px;right:32px;width:38px;height:38px;background:radial-gradient(circle,#ffffff59,#fff0 65%);mask:radial-gradient(circle at 50% 50%,transparent 52%,black 52%);pointer-events:none}.container{width:100%;max-width:1200px;margin:0 auto}.top-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:48px;position:relative;z-index:1}.brand{display:flex;align-items:center;gap:12px;color:#f5f5f7;font-weight:700;letter-spacing:.3px;cursor:pointer}.brand-logo{width:48px;height:48px;object-fit:contain;border-radius:6px;box-shadow:0 8px 24px #5b3bff59}.brand-name{font-size:1.05rem}.user-info{display:flex;align-items:center;gap:14px;color:#d1d1d6}.user-name{color:#cfd2e4;font-size:.95rem}.logout-btn{padding:8px 16px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#f5f5f7;cursor:pointer;transition:all .2s;font-size:.95rem}.logout-btn:hover{background:#ffffff1f;border-color:#ffffff26}.main-content{display:flex;justify-content:center;position:relative;z-index:1}.history-wrapper{position:relative;z-index:1}.login-prompt{text-align:center;padding:32px 0;color:#c8c8ce;margin-top:32px;position:relative;z-index:1}.login-prompt a{color:#7b5eff;cursor:pointer}
