:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{font-family:Comic Sans MS,Chalkboard,cursive,sans-serif;background:#e8e8e8}.app{width:100%;min-height:100vh;position:relative;overflow:hidden}.top-buttons{position:fixed;top:20px;right:20px;z-index:100;display:flex;gap:12px}.history-btn,.settings-btn{padding:12px 24px;background:#fff;border:3px solid #333;border-radius:25px;font-family:Comic Sans MS,cursive;font-size:14px;font-weight:700;cursor:pointer;box-shadow:4px 4px #333;transition:all .1s ease}.settings-btn{background:#f0f0f0}.history-btn:hover,.settings-btn:hover{transform:translate(2px,2px);box-shadow:2px 2px #333}.history-btn:active,.settings-btn:active{transform:translate(4px,4px);box-shadow:0 0 #333}.main-area{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px;gap:60px}.canvas-area{width:100%;min-height:100vh;position:relative;padding:250px 40px 40px;display:flex;align-items:flex-start;justify-content:center}.canvas-hint{position:absolute;top:50%;right:100px;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;color:#999;text-align:center;pointer-events:none}.canvas-hint span{font-size:48px;margin-bottom:12px;opacity:.5}.canvas-hint p{font-size:14px;color:#aaa}.film-card{position:absolute;width:160px;background:#fff;padding:10px 10px 45px;box-shadow:0 8px 30px #00000040;cursor:grab;z-index:10;transition:box-shadow .2s ease,transform .1s ease;-webkit-user-select:none;user-select:none}.film-card:hover{box-shadow:0 12px 40px #00000059;z-index:20}.film-card.dragging{cursor:grabbing;box-shadow:0 20px 60px #0006;z-index:100;transform:scale(1.02)}.film-card.generating{cursor:wait}.film-card.ejecting{cursor:default;z-index:50;animation:film-fade-in 1s ease-out forwards}@keyframes film-fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.film-card.completed{cursor:grab}.film-card.completed .film-image img{width:100%;height:100%;object-fit:cover}.film-image{width:140px;height:140px;position:relative;overflow:hidden;background:#111;z-index:1}.film-black{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(145deg,#1a1a1a,#0a0a0a)}.film-photo{position:absolute;top:0;left:0;width:100%;height:100%;transition:opacity .1s ease}.film-photo img{width:100%;height:100%;object-fit:cover}.film-loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#888;font-size:12px;animation:film-pulse 2s ease-in-out infinite}@keyframes film-pulse{0%,to{opacity:.6}50%{opacity:1}}.film-info{position:absolute;bottom:8px;left:10px;right:10px;text-align:center;font-family:Comic Sans MS,cursive}.film-name{display:block;font-size:12px;font-weight:700;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.film-dream{display:block;font-size:10px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.film-date{display:block;font-size:10px;color:#666;margin-top:2px}.film-delete{position:absolute;top:5px;right:5px;width:22px;height:22px;background:#00000080;border:none;border-radius:50%;color:#fff;font-size:11px;cursor:pointer;opacity:0;transition:all .2s ease;display:flex;align-items:center;justify-content:center;z-index:10;pointer-events:auto}.film-card:hover .film-delete{opacity:1}.film-delete:hover{background:#ef4444}.camera-section{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.side-form{position:absolute;right:90%;top:50%;transform:translateY(-50%);width:0;overflow:hidden;transition:width .4s ease;display:flex;justify-content:flex-end}.side-form.visible{width:215px}.side-form-content{width:200px;flex-shrink:0;padding:10px;background:#fffffff2;border-radius:10px 0 0 10px;box-shadow:-4px 0 20px #00000026;display:flex;flex-direction:column;gap:6px}.side-form .input-name{padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;outline:none}.side-form .input-name:focus{border-color:#667eea}.side-form .input-dream{padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;resize:none;outline:none;font-family:inherit}.side-form .input-dream:focus{border-color:#667eea}.side-form-actions{display:flex;gap:8px}.side-form-actions .btn-cancel{flex:1;padding:10px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:14px;transition:background .2s}.side-form-actions .btn-cancel:hover{background:#f5f5f5}.side-form-actions .btn-primary{flex:1;padding:10px;border:none;border-radius:6px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;cursor:pointer;font-size:14px;transition:opacity .2s}.side-form-actions .btn-primary:hover:not(:disabled){opacity:.9}.side-form-actions .btn-primary:disabled{opacity:.5;cursor:not-allowed}.captured-preview{width:100%;height:100%;object-fit:cover}.side-result{position:absolute;left:90%;top:27%;width:0;overflow:visible}.side-result-film{position:absolute;left:0;top:0;width:160px;background:#fff;padding:10px 10px 40px;border-radius:4px;box-shadow:0 4px 15px #0003;transition:transform .5s ease;cursor:grab}.side-result-film .film-image{width:100%;aspect-ratio:1;position:relative;overflow:hidden;border-radius:2px;background:#1a1a1a}.side-result-film .film-photo{position:absolute;top:0;left:0;width:100%;height:100%}.side-result-film .film-photo img{width:100%;height:100%;object-fit:cover}.side-result-film .film-black{position:absolute;top:0;left:0;width:100%;height:100%;background:#1a1a1a;transition:opacity 2s ease}.side-result-film .film-info{margin-top:8px;display:flex;flex-direction:column;gap:2px}.side-result-film .film-dream{font-size:12px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-result-film .film-date{font-size:10px;color:#999}.ejected-photo{position:absolute;top:-220px;left:50%;margin-left:-75px;width:150px;background:#fff;padding:10px 10px 40px;box-shadow:0 8px 30px #0000004d;cursor:grab;z-index:50;transition:transform .3s ease,box-shadow .3s ease;-webkit-user-select:none;user-select:none}.ejected-photo.ejecting{animation:photo-eject .8s cubic-bezier(.25,.46,.45,.94) forwards;cursor:default}.ejected-photo.dragging{cursor:grabbing;box-shadow:0 15px 50px #0006;transition:none}.ejected-photo.generating{cursor:wait}.ejected-photo.has-result{animation:photo-glow 2s ease-in-out infinite}@keyframes photo-eject{0%{top:30px;opacity:0;filter:blur(8px);clip-path:inset(75% 0 0 0)}30%{opacity:1;filter:blur(4px);clip-path:inset(50% 0 0 0)}60%{filter:blur(2px);clip-path:inset(25% 0 0 0)}to{top:-220px;opacity:1;filter:blur(0);clip-path:inset(0 0 0 0)}}@keyframes photo-glow{0%,to{box-shadow:0 8px 30px #667eea4d}50%{box-shadow:0 8px 40px #667eea99}}.ejected-photo-inner{width:130px;height:130px;background:#f0f0f0;overflow:hidden;position:relative}.ejected-photo-original{width:100%;height:100%;transition:opacity .5s ease}.ejected-photo-original.hidden{opacity:0}.ejected-photo-original img{width:100%;height:100%;object-fit:cover}.ejected-photo-result{position:absolute;top:0;left:0;width:100%;height:100%;opacity:1}.ejected-photo-result.revealing{animation:photo-reveal 1s ease-out forwards}@keyframes photo-reveal{0%{clip-path:circle(0% at 50% 50%);filter:brightness(2) saturate(0)}50%{filter:brightness(1.5) saturate(.5)}to{clip-path:circle(100% at 50% 50%);filter:brightness(1) saturate(1)}}.ejected-photo-result img{width:100%;height:100%;object-fit:cover}.ejected-photo-loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eeae6,#764ba2e6);color:#fff;gap:8px}.ejected-photo-loading span{font-size:11px;font-weight:500}.ejected-photo-info{position:absolute;bottom:8px;left:10px;right:10px;text-align:center;font-family:Comic Sans MS,cursive}.ejected-photo-dream{display:block;font-size:11px;font-weight:700;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ejected-photo-date{display:block;font-size:10px;color:#666;margin-top:2px}.ejected-photo-hint{display:block;font-size:9px;color:#667eea;margin-top:4px;font-weight:700;animation:hint-pulse 1.5s ease-in-out infinite}@keyframes hint-pulse{0%,to{opacity:1}50%{opacity:.5}}.ejected-photo-cancel{position:absolute;top:5px;right:5px;width:20px;height:20px;background:#00000080;border:none;border-radius:50%;color:#fff;font-size:10px;cursor:pointer;opacity:0;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.ejected-photo:hover .ejected-photo-cancel{opacity:1}.ejected-photo-cancel:hover{background:#ef4444}.photos-section{flex:1;display:flex;align-items:center;justify-content:center;min-height:500px}.camera-wrapper{position:relative;width:450px;height:450px;flex-shrink:0}.camera-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;z-index:4;pointer-events:none}.camera-flashlight{position:absolute;top:24%;right:15%;width:30px;height:30px;background:radial-gradient(circle,#fff 0% 30%,#fff0 70%);border-radius:50%;z-index:100;animation:flashlight-glow .25s ease-out forwards;pointer-events:none;box-shadow:0 0 20px 10px #ffffffe6,0 0 40px 20px #fff9,0 0 60px 30px #ffffff4d}@keyframes flashlight-glow{0%{opacity:1;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:scale(.8)}}.camera-flash{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#fff;z-index:9999;animation:flash-effect .25s ease-out forwards;pointer-events:none}@keyframes flash-effect{0%{opacity:.85}40%{opacity:.5}to{opacity:0}}.camera-video-container{position:absolute;top:35%;left:50%;transform:translate(-50%);width:38%;height:38%;overflow:hidden;z-index:3;background:#1a1a1a}.camera-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#222;font-size:32px}.camera-shutter{position:absolute;top:23.5%;left:60%;width:25px;height:25px;min-width:0;padding:0;background:transparent;border:none;box-sizing:border-box;border-radius:50%;cursor:pointer;z-index:10;box-shadow:none;transition:all .1s ease}.camera-shutter:after{display:none}.camera-shutter:hover:not(:disabled){background:transparent;box-shadow:none}.camera-shutter:active:not(:disabled){background:transparent;box-shadow:none}.camera-shutter:disabled{opacity:.5;cursor:not-allowed}.camera-upload{position:absolute;bottom:13%;left:50%;transform:translate(-50%);width:50px;height:50px;background:transparent;border:none;cursor:pointer;z-index:10;border-radius:50%}.camera-upload:hover:not(:disabled){background:#ffffff1a}.camera-upload:disabled{cursor:not-allowed}.upload-arrow{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:42px;font-weight:700;color:#666;transition:color .2s ease}.camera-upload:hover:not(:disabled) .upload-arrow{color:#333}.entering-photo-container{position:absolute;bottom:-8%;left:50%;transform:translate(-50%);width:120px;height:140px;overflow:hidden;z-index:5;pointer-events:none}.entering-photo{position:absolute;bottom:0;left:0;width:100%}.entering-photo img{width:100%;height:auto;aspect-ratio:1;object-fit:cover}.ejecting-film{position:absolute;bottom:100%;left:50%;margin-left:-80px;width:160px;background:#fff;padding:10px 10px 45px;box-shadow:0 8px 30px #00000040;z-index:1;transition:transform .05s linear}.ejecting-film .film-image{width:140px;height:140px;position:relative;overflow:hidden;background:#111}.ejecting-film .film-photo{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.ejecting-film .film-photo img{width:100%;height:100%;object-fit:cover}.ejecting-film .film-black{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(145deg,#1a1a1a,#0a0a0a);z-index:2;transition:opacity .1s ease}.ejecting-film .film-info{position:absolute;bottom:8px;left:10px;right:10px;text-align:center;font-family:Comic Sans MS,cursive}.ejecting-film .film-dream{display:block;font-size:12px;font-weight:700;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.ejecting-film .film-date{display:block;font-size:10px;color:#666}.pending-photo-wrapper{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:-15px;z-index:10}.pending-photo-card{width:140px;background:#fff;padding:8px 8px 35px;box-shadow:0 8px 30px #00000040;animation:photo-slide-up .6s cubic-bezier(.25,.46,.45,.94) forwards}.pending-photo-card.generating{filter:blur(3px) saturate(.8);animation:photo-slide-up .6s cubic-bezier(.25,.46,.45,.94) forwards,photo-waiting 2s ease-in-out infinite .6s}@keyframes photo-slide-up{0%{transform:translateY(80px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes photo-waiting{0%,to{filter:blur(3px) saturate(.8) brightness(1)}50%{filter:blur(2px) saturate(.9) brightness(1.1)}}.pending-photo-image{width:124px;height:124px;overflow:hidden;position:relative}.pending-photo-image img{width:100%;height:100%;object-fit:cover}.pending-photo-loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#0000004d}.pending-photo-loading span{color:#fff;font-size:12px;font-weight:500;text-shadow:0 1px 3px rgba(0,0,0,.5)}.pending-photo-info{position:absolute;bottom:6px;left:8px;right:8px;text-align:center;font-family:Comic Sans MS,cursive}.pending-photo-hint{font-size:10px;color:#999}.polaroids-area{display:flex;flex-wrap:wrap;gap:20px;max-width:500px;justify-content:center;align-items:flex-start}.polaroids-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#999;text-align:center}.polaroids-empty span{font-size:60px;margin-bottom:16px}.polaroids-empty p{font-size:16px;color:#888}.polaroid{position:relative;width:150px;background:#fff;padding:10px 10px 40px;box-shadow:0 4px 15px #0003,0 0 0 1px #0000000d;cursor:pointer;transition:all .3s ease}.polaroid:hover{transform:scale(1.05) rotate(0)!important;z-index:10!important;box-shadow:0 10px 30px #0000004d}.polaroid.selected{transform:scale(1.05) rotate(0)!important;z-index:10!important;box-shadow:0 10px 30px #667eea80}.polaroid-image{width:130px;height:130px;background:#f0f0f0;overflow:hidden}.polaroid-image img{width:100%;height:100%;object-fit:cover}.polaroid-loading{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.spinner-small{width:30px;height:30px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.polaroid-info{position:absolute;bottom:8px;left:10px;right:10px;text-align:center;font-family:Comic Sans MS,cursive}.polaroid-dream{display:block;font-size:11px;font-weight:700;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.polaroid-date{display:block;font-size:10px;color:#666;margin-top:2px}.polaroid-delete{position:absolute;top:5px;right:5px;width:20px;height:20px;background:#00000080;border:none;border-radius:50%;color:#fff;font-size:10px;cursor:pointer;opacity:0;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.polaroid:hover .polaroid-delete{opacity:1}.polaroid-delete:hover{background:#ef4444}.error-toast{position:fixed;top:20px;left:50%;transform:translate(-50%);background:#ef4444f2;color:#fff;padding:12px 24px;border-radius:25px;font-size:14px;z-index:1000;cursor:pointer;box-shadow:0 4px 20px #ef444466}.polaroid-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.polaroid-modal-content{position:relative;width:100%;max-width:400px;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 25px 80px #0006}.polaroid-preview{width:100%;aspect-ratio:1;background:#f0f0f0;overflow:hidden}.polaroid-preview img{width:100%;height:100%;object-fit:cover}.polaroid-generating{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;gap:16px}.polaroid-form{padding:20px;display:flex;flex-direction:column;gap:12px}.polaroid-actions{display:flex;gap:10px}.polaroid-actions .btn-primary,.polaroid-actions .btn-download{flex:1}.polaroid-view-info{text-align:center;padding:10px 0}.view-name{font-size:18px;font-weight:600;color:#1f2937;margin-bottom:6px}.view-dream{font-size:14px;color:#667eea;font-style:italic;margin-bottom:4px}.view-date{font-size:12px;color:#9ca3af}.btn-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:none;background:#fff;border-radius:50%;font-size:18px;cursor:pointer;z-index:10;box-shadow:0 2px 8px #0003;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-close:hover{background:#f0f0f0;transform:scale(1.1)}.input-name{padding:12px 16px;border:2px solid #e5e7eb;border-radius:12px;font-size:14px;outline:none;transition:all .2s ease;background:#f9fafb;font-family:inherit}.input-name:focus{border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.input-dream{padding:12px 16px;border:2px solid #e5e7eb;border-radius:12px;font-size:14px;outline:none;resize:none;font-family:inherit;transition:all .2s ease;background:#f9fafb}.input-dream:focus{border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.input-select{padding:12px 16px;border:2px solid #e5e7eb;border-radius:12px;font-size:14px;outline:none;transition:all .2s ease;background:#f9fafb;font-family:inherit;cursor:pointer}.input-select:focus{border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.input-prompt{padding:12px 16px;border:2px solid #e5e7eb;border-radius:12px;font-size:13px;outline:none;resize:vertical;font-family:Courier New,monospace;transition:all .2s ease;background:#f9fafb;line-height:1.5}.input-prompt:focus{border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.btn-primary{padding:14px 20px;background:#667eea;border:none;border-radius:12px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-primary:hover:not(:disabled){background:#5a6fd6;transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-download{padding:14px 20px;background:#10b981;border:none;border-radius:12px;color:#fff;font-size:15px;font-weight:600;text-decoration:none;text-align:center;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-download:hover{background:#059669}.btn-reset{margin-left:10px;padding:4px 10px;background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s ease}.btn-reset:hover{background:#e5e7eb}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.gallery-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;overflow:auto}.gallery-container{width:100%;min-height:100%;background:repeating-linear-gradient(90deg,transparent 0px,transparent 50px,rgba(0,0,0,.03) 50px,rgba(0,0,0,.03) 51px),repeating-linear-gradient(0deg,transparent 0px,transparent 2px,rgba(139,90,43,.08) 2px,rgba(139,90,43,.08) 4px),repeating-linear-gradient(180deg,rgba(160,120,60,.1) 0px,transparent 2px,transparent 8px),linear-gradient(135deg,#c9a66b,#b8956a,#a68555 60%,#c4a060);display:flex;flex-direction:column}.gallery-back{position:fixed;top:20px;left:20px;padding:10px 20px;background:#fff;border:none;border-radius:20px;font-family:Comic Sans MS,cursive;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 2px 8px #0003;z-index:10;transition:all .2s ease}.gallery-back:hover{transform:scale(1.05);box-shadow:0 4px 12px #0000004d}.gallery-header{padding:60px 20px 30px;text-align:center}.gallery-pin{font-size:48px;margin-bottom:10px}.gallery-header h2{font-family:Comic Sans MS,Chalkboard,cursive;font-size:42px;font-weight:700;color:#4a3728;text-shadow:2px 2px 4px rgba(0,0,0,.2);margin-bottom:10px}.gallery-subtitle{font-family:Comic Sans MS,cursive;font-size:16px;color:#5a4738;font-style:italic}.gallery-divider{width:80%;max-width:800px;height:2px;background:#4a37284d;margin:0 auto 40px}.gallery-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#5a4738}.gallery-empty span{font-size:80px;margin-bottom:20px}.gallery-empty p{font-family:Comic Sans MS,cursive;font-size:18px}.gallery-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:30px;padding:20px 40px 60px;max-width:1400px;margin:0 auto}.gallery-polaroid{position:relative;width:180px;background:#fff;padding:12px 12px 50px;box-shadow:0 4px 15px #00000040;cursor:pointer;transition:all .3s ease;transform:rotate(var(--rotation, 0deg))}.gallery-polaroid:hover{transform:rotate(0) scale(1.08);z-index:10;box-shadow:0 10px 30px #00000059}.gallery-polaroid:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);width:20px;height:20px;background:radial-gradient(circle at 30% 30%,#ff6b6b,#c0392b);border-radius:50%;box-shadow:0 2px 4px #0000004d;z-index:1}.gallery-polaroid-image{width:156px;height:156px;overflow:hidden;background:#f0f0f0}.gallery-polaroid-image img{width:100%;height:100%;object-fit:cover}.gallery-polaroid-info{position:absolute;bottom:10px;left:12px;right:12px;text-align:center;font-family:Comic Sans MS,cursive}.gallery-polaroid-dream{display:block;font-size:13px;font-weight:700;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.gallery-polaroid-date{display:block;font-size:11px;color:#666}.gallery-polaroid-delete{position:absolute;top:15px;right:8px;width:24px;height:24px;border-radius:50%;border:none;background:#00000080;color:#fff;font-size:12px;cursor:pointer;opacity:0;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.gallery-polaroid:hover .gallery-polaroid-delete{opacity:1}.gallery-polaroid-delete:hover{background:#ef4444}.settings-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1002;display:flex;align-items:center;justify-content:center;padding:20px}.settings-container{width:100%;max-width:500px;max-height:90vh;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 25px 80px #0000004d;display:flex;flex-direction:column}.settings-header{padding:20px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f0f0f0;flex-shrink:0}.settings-header h2{font-size:18px;font-weight:600;color:#1f2937}.settings-form{padding:24px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;flex:1}.settings-field{display:flex;flex-direction:column;gap:6px}.settings-field label{font-size:14px;font-weight:500;color:#374151;display:flex;align-items:center}.settings-hint{font-size:12px;color:#6b7280;margin-top:4px}.settings-hint a{color:#667eea;text-decoration:none}.settings-hint a:hover{text-decoration:underline}.settings-hint code{background:#f3f4f6;padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:11px}.template-list{display:flex;flex-direction:column;gap:6px}.template-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#f3f4f6;border:2px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .2s ease}.template-item:hover{background:#e5e7eb;border-color:#d1d5db}.template-item.active{background:#667eea;border-color:#667eea;color:#fff}.template-name{font-size:14px;font-weight:500}.template-delete{width:22px;height:22px;background:#0000001a;border:none;border-radius:50%;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:all .2s ease}.template-item.active .template-delete{background:#fff3;color:#fff}.template-delete:hover{opacity:1;background:#ef4444;color:#fff}.template-add{padding:10px 14px;background:transparent;border:2px dashed #d1d5db;border-radius:10px;cursor:pointer;font-size:14px;color:#6b7280;transition:all .2s ease;font-family:inherit}.template-add:hover{border-color:#667eea;color:#667eea;background:#667eea0d}.add-template-field{background:#f9fafb;padding:16px;border-radius:12px;border:1px solid #e5e7eb}.add-template-actions{display:flex;gap:10px;margin-top:12px}.btn-secondary{padding:10px 16px;background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-secondary:hover{background:#e5e7eb}.detail-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1001;display:flex;align-items:center;justify-content:center;padding:20px}.detail-container{position:relative;width:100%;max-width:800px;max-height:90vh;background:#fff;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 80px #0006}.detail-container .btn-close{position:absolute;top:16px;right:16px;z-index:10;background:#fff;box-shadow:0 2px 8px #00000026}.detail-images{display:flex;gap:2px;background:#f0f0f0}.detail-image-box{flex:1;position:relative}.detail-image-box img{width:100%;aspect-ratio:1;object-fit:cover}.detail-label{position:absolute;top:12px;left:12px;background:#0009;color:#fff;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.detail-info{padding:24px;text-align:center;background:#fff}.detail-name{font-size:22px;font-weight:600;color:#1f2937;margin-bottom:8px}.detail-dream{font-size:15px;color:#667eea;font-style:italic;margin-bottom:8px}.detail-time{font-size:13px;color:#9ca3af}@media(max-width:1000px){.main-area{flex-direction:column;padding:80px 20px 40px;gap:40px}.photos-section{min-height:auto}.polaroids-area{max-width:100%}}@media(max-width:600px){.camera-wrapper{width:280px;height:280px}.camera-upload{width:50px;height:65px}.polaroid{width:120px;padding:8px 8px 35px}.polaroid-image{width:104px;height:104px}.polaroid-dream{font-size:9px}.polaroid-date{font-size:8px}.gallery-group-grid{grid-template-columns:repeat(4,1fr);gap:8px}.detail-images{flex-direction:column}.detail-image-box img{aspect-ratio:4/3}.settings-container{max-width:100%}.top-buttons{top:10px;right:10px;gap:8px}.history-btn,.settings-btn{padding:8px 16px;font-size:12px}.canvas-area{padding:80px 15px 20px}.canvas-hint{right:20px;top:auto;bottom:30px;transform:none}.canvas-hint span{font-size:36px}.film-card{width:130px;padding:8px 8px 38px}.film-image{width:114px;height:114px}.film-dream{font-size:10px}.film-date{font-size:9px}}.delete-confirm-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}.delete-confirm-dialog{background:#fff;border-radius:16px;padding:24px;max-width:300px;width:100%;box-shadow:0 20px 60px #0000004d;text-align:center}.delete-confirm-preview{width:160px;height:160px;margin:0 auto 16px;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px #00000026}.delete-confirm-preview img{width:100%;height:100%;object-fit:cover}.delete-confirm-text{font-size:16px;color:#374151;margin-bottom:20px;font-weight:500}.delete-confirm-actions{display:flex;gap:12px;justify-content:center}.delete-confirm-actions .btn-cancel{padding:10px 20px;background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s ease;color:#374151}.delete-confirm-actions .btn-cancel:hover{background:#e5e7eb}.delete-confirm-actions .btn-delete{padding:10px 20px;background:#ef4444;border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.delete-confirm-actions .btn-delete:hover{background:#dc2626}
