*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #f5f2ec;--card: #ffffff;--text: #2c2c2c;--text-muted: #888;--border: #e8e4de;--accent: #c96442;--peach: #fde8d8;--sage: #dde8d8;--lavender: #e4ddf0;--radius: 12px;--shadow-sm: 0 1px 3px rgba(0,0,0,.06);--shadow-md: 0 4px 16px rgba(0,0,0,.08);--shadow-lg: 0 8px 30px rgba(0,0,0,.12)}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:Inter,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;margin:0}.page{max-width:1100px;margin:0 auto;padding:24px 28px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:20px;border-bottom:1px solid var(--border)}.header-left{display:flex;align-items:center;gap:12px}.logo{font-size:32px;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.title{font-family:Playfair Display,serif;font-size:28px;font-weight:600}.header-right{display:flex;align-items:center;gap:12px}.header-username{font-size:14px;font-weight:500;color:var(--text)}.icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--border);border-radius:10px;font-size:18px;cursor:pointer;transition:all .2s}.icon-btn:hover{background:#00000008;transform:scale(1.05)}.user-menu{position:relative}.user-avatar{width:40px;height:40px;border-radius:50%;cursor:pointer;border:2px solid var(--border);transition:all .2s}.user-avatar:hover{border-color:var(--accent);transform:scale(1.05)}.signout-btn{padding:0;border:none;background:transparent;overflow:hidden;border-radius:50%;width:40px;height:40px}.signout-btn .user-avatar{width:100%;height:100%;border:2px solid var(--border)}.user-menu:hover .user-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.user-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:240px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s;z-index:100}.user-info{padding:16px;border-bottom:1px solid var(--border)}.user-name{font-weight:600;font-size:14px;color:var(--text);margin-bottom:4px}.user-email{font-size:12px;color:var(--text-muted)}.dropdown-item{width:100%;padding:12px 16px;background:transparent;border:none;text-align:left;font-family:inherit;font-size:14px;color:var(--text);cursor:pointer;transition:background .2s}.dropdown-item:hover{background:#00000008}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--text);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,transform .1s}.btn:hover{background:#444}.btn:active{transform:scale(.97)}.btn.outline{background:transparent;color:var(--text);border:1px solid var(--border)}.btn.outline:hover{background:#00000008}.filters{display:flex;gap:8px;margin-bottom:28px;flex-wrap:wrap;animation:slideIn .5s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.pill{padding:8px 18px;background:var(--card);border:1px solid var(--border);border-radius:20px;font-family:inherit;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px}.pill:hover{border-color:#ccc;color:var(--text);transform:translateY(-2px);box-shadow:0 2px 8px #00000014}.pill.active{background:var(--text);color:#fff;border-color:var(--text);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.pill .count{font-size:11px;opacity:.7;margin-left:2px}.pill.add{border-style:dashed;color:var(--accent);border-color:var(--accent);background:transparent}.pill.add:hover{background:#c964420d}.pill.custom-space{transition:all .2s}.pill.custom-space .space-icon{font-size:16px;line-height:1}.pill.custom-space.shape-circle{border-radius:24px}.pill.custom-space.shape-square{border-radius:6px}.pill.custom-space.shape-pill{border-radius:20px}.pill.custom-space.shape-rounded{border-radius:12px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:28px;animation:fadeIn .6s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.page>.grid .polaroid-container{animation:scaleIn .4s ease-out backwards}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.page>.grid .polaroid-container:nth-child(1){animation-delay:.05s}.page>.grid .polaroid-container:nth-child(2){animation-delay:.1s}.page>.grid .polaroid-container:nth-child(3){animation-delay:.15s}.page>.grid .polaroid-container:nth-child(4){animation-delay:.2s}.page>.grid .polaroid-container:nth-child(5){animation-delay:.25s}.page>.grid .polaroid-container:nth-child(6){animation-delay:.3s}.polaroid-front .date,.polaroid-back .date{padding:12px 16px 6px;font-family:Playfair Display,serif;font-size:13px;color:var(--text-muted)}.polaroid-front .tags,.back-tags{display:flex;flex-wrap:wrap;gap:6px;padding:6px 16px 16px}.tag{display:inline-block;padding:4px 12px;border-radius:12px;font-size:11px;font-weight:500;transition:transform .2s}.tag:hover{transform:scale(1.05)}.tag.peach{background:var(--peach);color:sienna}.tag.sage{background:var(--sage);color:#4a7c48}.tag.lavender{background:var(--lavender);color:#6b5b8d}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100}.modal-overlay{z-index:200}.details-modal{width:440px;max-width:92vw;max-height:90vh;overflow-y:auto;background:var(--card);border-radius:20px;box-shadow:0 20px 60px #0003}.details-card{padding:24px;border-bottom:1px solid var(--border)}.invite-item{padding:14px 0;border-bottom:1px solid var(--border)}.invite-item:last-of-type{border-bottom:none}.invite-title{font-family:Playfair Display,serif;font-size:15px;font-weight:500;color:var(--text);margin-bottom:2px}.invite-sub{font-size:12px;color:var(--text-muted)}.invite-date{margin-top:12px;font-size:12px;color:#bbb}.details-form{padding:24px}.details-header{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}.details-title{font-family:Playfair Display,serif;font-size:20px;font-weight:600;color:var(--text);margin-bottom:6px}.details-subtitle{font-size:13px;color:var(--text-muted)}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.field span{font-size:13px;font-weight:600;color:var(--text)}.field input{height:46px;padding:0 16px;border:1px solid var(--border);border-radius:10px;font-family:inherit;font-size:14px;color:var(--text);outline:none;transition:all .2s;box-sizing:border-box}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c964421a}.field textarea{width:100%;box-sizing:border-box;padding:12px 16px;border:1px solid var(--border);border-radius:10px;font-family:inherit;font-size:14px;color:var(--text);outline:none;transition:all .2s;resize:vertical;min-height:80px}.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c964421a}.tags-container{display:flex;flex-direction:column;gap:8px}.tag-input{width:100%;height:46px;padding:0 16px;border:1px solid var(--border);border-radius:10px;font-family:inherit;font-size:14px;color:var(--text);outline:none;transition:all .2s;box-sizing:border-box}.tag-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c964421a}.tag-chips{display:flex;flex-wrap:wrap;gap:8px}.tag-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;background:#f3f3f3;border:1px solid #e0e0e0;color:#555;border-radius:999px;font-size:12px;font-weight:500}.tag-remove{background:transparent;border:none;color:#999;font-size:14px;cursor:pointer;padding:0;line-height:1;display:flex;align-items:center;transition:color .15s}.tag-remove:hover{color:#555}.space-box{display:flex;flex-wrap:wrap;gap:8px}.space-chip{padding:8px 16px;background:#00000008;border:1px solid var(--border);border-radius:10px;font-size:13px;color:var(--text-muted);cursor:pointer;transition:all .2s}.space-chip:hover{border-color:#aaa;color:var(--text);transform:translateY(-1px)}.space-chip.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.form-actions .btn{height:46px;padding:0 24px;font-size:14px}@media (max-width: 600px){.page{padding:16px}.topbar{flex-direction:column;align-items:flex-start;gap:12px}.grid{grid-template-columns:repeat(2,1fr);gap:14px}}.accent-btn{background:var(--accent)}.accent-btn:hover{background:#b5553a}.btn-dark{background:var(--text);color:#fff}.btn-dark:hover{background:#444}.btn-delete{background:transparent;color:#d32f2f;border:1px solid #d32f2f}.btn-delete:hover{background:#d32f2f;color:#fff}.content-footer{text-align:center;padding:32px 0 16px;font-size:13px;color:var(--text-muted)}.masonry-grid{display:block;column-count:4;column-gap:24px}.masonry-grid .polaroid-container{break-inside:avoid;margin-bottom:24px}.masonry-grid .polaroid-front img{aspect-ratio:auto}.details-modal{position:relative}.details-close-btn{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;border:none;background:#0000000d;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;transition:all .2s}.details-close-btn:hover{background:#0000001a;color:var(--text)}.field-label-upper{text-transform:uppercase;font-size:11px!important;font-weight:700!important;letter-spacing:.5px;color:var(--text-muted)!important}.photo-dropzone-placeholder{border:2px dashed var(--border);border-radius:12px;padding:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-muted);font-size:13px;margin-bottom:20px;min-height:120px;background:#00000003}.textarea-wrapper{position:relative}.textarea-wrapper textarea{padding-bottom:24px}.char-counter{position:absolute;bottom:10px;right:14px;font-size:11px;color:#bbb;pointer-events:none;line-height:1}.date-time-row{display:flex;gap:10px}.date-picker,.time-picker{height:46px;padding:0 16px;border:1px solid var(--border);border-radius:10px;font-family:inherit;font-size:14px;color:var(--text);outline:none;transition:all .2s;box-sizing:border-box;cursor:pointer}.date-picker{flex:1}.time-picker{width:130px;flex-shrink:0}.date-picker:focus,.time-picker:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c964421a}.camera-hidden-behind{display:none}.loading-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.loading-icon{font-size:40px;animation:loading-pulse 1.8s ease-in-out infinite}@keyframes loading-pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.empty-state-container{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;min-height:320px}.polaroid-prompt{background-color:#fefefe;background-image:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.004) 3px,rgba(0,0,0,.004) 6px);border-radius:4px;box-shadow:var(--shadow-md);padding:12px 12px 20px;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;width:260px}.polaroid-prompt:hover{transform:translateY(-4px) rotate(1.5deg);box-shadow:var(--shadow-lg)}.prompt-image-area{aspect-ratio:1;border:2px dashed var(--border);border-radius:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#00000003}.prompt-icon{width:56px;height:56px;border-radius:50%;background:#c964421a;color:var(--accent);display:flex;align-items:center;justify-content:center}.prompt-text{font-size:14px;font-weight:500;color:var(--text-muted)}.prompt-caption{text-align:center;padding-top:14px;font-size:12px;color:#bbb;font-style:italic}.filter-empty-text{font-size:14px;color:var(--text-muted);text-align:center}@media (max-width: 900px){.masonry-grid{column-count:3}}@media (max-width: 600px){.masonry-grid{column-count:2}}.camera-modal{position:relative;width:520px;max-width:94vw;min-height:700px;max-height:92vh;background:var(--card);border-radius:24px;padding:32px 28px 28px;box-shadow:var(--shadow-lg);overflow:hidden}.close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:18px;color:var(--text-muted);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .15s;z-index:60}.close:hover{background:#0000000d}.camera-hero{position:relative;display:flex;flex-direction:column;align-items:center;z-index:5}.camera-caption{text-align:center;margin-top:8px;position:relative;z-index:3;transition:opacity .2s ease}.camera-caption.hidden{opacity:0;pointer-events:none}.screen-title{font-family:Playfair Display,serif;font-size:15px;font-weight:500;color:var(--text);margin-bottom:3px}.screen-subtitle{font-size:13px;color:var(--text-muted)}.screen-hint{font-size:11px;color:#bbb;margin-top:3px}.file-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.camera{display:block;width:570px;height:470px;position:relative;transform:scale(.52);transform-origin:top center;margin-bottom:-220px;z-index:6}.camera .top{display:block;position:relative;width:540px;height:320px;margin-left:auto;margin-right:auto;border-radius:35px 35px 0 0;background-image:linear-gradient(90deg,#f3f3f3bf,#f3f3f300 15%,#f3f3f300 85%,#f3f3f3bf),linear-gradient(#fefefe,#f9f7f8),linear-gradient(#ddd9da,#e2dedf,#eae8eb,#f3f1f4);background-size:100%,100% 3px,100%;background-repeat:no-repeat;box-shadow:-1px 1px 2px 3px #f9f7f8d9 inset}.camera .top .flash{position:absolute;width:90px;height:160px;border-radius:15px;left:25px;top:25px;box-shadow:-1px -1px 1px #bdb8b5,-1.5px -2.1px .5px #24201d,-4px 4px 3px 3px #f4f0ef,-5px 8px 8px #aba6aa,.25px 1px 1px 5px #3e3a38 inset,0 -6px 1px 1px #f6f6f8 inset;background-image:linear-gradient(#edecea,#f6f6f8),linear-gradient(90deg,#f7f6f400 3%,#f7f6f480 3%,#f7f6f480 6%,#f7f6f400 6%,#f7f6f400 11%,#f7f6f480 12%,#f7f6f480 15%,#f7f6f400 15%,#f7f6f400 21%,#f7f6f480 21%,#f7f6f480 23%,#f7f6f400 23%,#f7f6f400 24%,#f7f6f480 24%,#f7f6f480 25%,#f7f6f400 25%,#f7f6f400 27%,#f7f6f480 27%,#f7f6f480 28%,#f7f6f400 28%,#f7f6f400 31%,#f7f6f480 31%,#f7f6f480 33%,#f7f6f400 33%,#f7f6f400 35%,#f7f6f480 35%,#f7f6f480 37%,#f7f6f400 37%,#f7f6f400 39%,#f7f6f480 39%,#f7f6f480 41%,#f7f6f400 41%,#f7f6f400 43%,#f7f6f480 43%,#f7f6f480 45%,#f7f6f400 45%,#f7f6f400 48%,#f7f6f480 48%,#f7f6f480 50%,#f7f6f400 50%,#f7f6f400 55%,#f7f6f480 55%,#f7f6f480 57%,#f7f6f400 57%,#f7f6f400 59%,#f7f6f480 59%,#f7f6f480 60%,#f7f6f400 60%,#f7f6f400 61%,#f7f6f480 61%,#f7f6f480 62%,#f7f6f400 62%,#f7f6f400 64%,#f7f6f480 64%,#f7f6f480 66%,#f7f6f400 66%,#f7f6f400 69%,#f7f6f480 69%,#f7f6f480 71%,#f7f6f400 71%,#f7f6f400 75%,#f7f6f480 75%,#f7f6f480 77%,#f7f6f400 77%,#f7f6f400 79%,#f7f6f480 79%,#f7f6f480 80%,#f7f6f400 80%,#f7f6f400 81%,#f7f6f480 81%,#f7f6f480 82%,#f7f6f400 82%,#f7f6f400 84%,#f7f6f480 84%,#f7f6f480 86%,#f7f6f400 86%,#f7f6f400 89%,#f7f6f480 89%,#f7f6f480 91%,#f7f6f400 81%,#f7f6f400 95%),linear-gradient(90deg,#bab8b91a,#f7f6f4a6,#bab8b91a),linear-gradient(90deg,#bab8b91a,#f7f6f4a6,#bab8b91a),linear-gradient(#E3DEDA 15%,#AFAAA6 25% 35%,transparent 45%),linear-gradient(#f0efed 10%,#b0aba7 20%,#403c3b 40%,#2f2b2a 43%,#292524 45%,#292524,#696562,#696562 75%,#c2bfba 82%,#c2bfba,#dedad7 90%,#dedad7 93%,#c9c6c1 94%,#c9c6c1,#fffefa 98%),linear-gradient(#34332f,#3e3a38);background-size:42px 20px,42px 100%,3px 100%,3px 100%,100% 3px,100%,100%;background-repeat:no-repeat;background-position:24px top,25px top,22px top,64px top,center,center,center}.camera .top .lens{position:absolute;display:block;width:210px;height:210px;border-radius:105px;background-color:#000;top:15px;left:0;right:0;margin-left:auto;margin-right:auto;background-image:radial-gradient(transparent,#000),radial-gradient(rgba(51,53,54,.4),transparent),radial-gradient(#2a282b,#2a282b 27%,#070508,#070508,#4e4c4f 28.5%,#4e4c4f,#2a282b 28.7%,#2a282b 29.3%,#070508 29.5%,#070508 29.8%,#4e4c4f 30%,#4e4c4f 30.5%,#2a282b 30.5%,#2a282b 32.5%,#070508,#070508,#4e4c4f,#4e4c4f 34.5%,#2a282b 34.5%,#2a282b 36.5%,#070508,#070508,#3d3b40,#3d3b40,#908e91,#908e91,#3d3b40,#3d3b40,#908e91,#908e91,#3d3b40,#3d3b40,#908e91,#908e91,#3d3b40,#3d3b40,#908e91,#908e91,#3d3b40,#3d3b40,#908e91,#908e91,#3d3b40,#3d3b40,#908e91,#908e91,#3d3b40,#3d3b40,#908e91,#908e91,#3d3b40,#3d3b40,#908e91 53%,#908e91 54%,#241e1e 54.5%,#241e1e 57%,#131114 57%,#131114 59%,#3c3a3d 59%,#3c3a3d 60%,#241e1e 60%);background-size:350px 350px,350px 350px,100%;background-position:bottom -100px left,top -120px right 10px,center;background-repeat:no-repeat;box-shadow:15px 55px 60px 5px #767072}.camera .top .lens .glass{display:block;width:70px;height:70px;border-radius:40px;position:absolute;margin-left:auto;margin-right:auto;left:0;right:0;top:70px;background-image:radial-gradient(rgba(119,109,80,.85),transparent 40%),radial-gradient(#33b46940 13%,#779f3b33 53%,#779f3b33 70%,#779f3b00 68%),radial-gradient(#33b46940 23%,#33b46933 53%,#33b46933 70%,#33b46900 68%),radial-gradient(#2c1f28,#241921 55%,#080609 70%);background-size:100%,190% 100%,190% 100%,100%;background-repeat:no-repeat;background-position:center -10px,-30px -48px,-30px 55px,center}.camera .top .shutter{display:block;width:57px;height:57px;position:absolute;border-radius:30px;bottom:30px;left:25px;background-image:radial-gradient(#da1107 51%,#ed4b1d 53.5%);background-size:200% 200%;background-repeat:no-repeat;background-position:bottom -10px center;border:1px solid #520000;box-shadow:1px 1px 1px #fff3 inset,0 0 2px 6px #dfdad7,1px 6px 10px #66514d,-1px -7.5px 1px #fff;cursor:pointer;z-index:10;transition:transform .1s,box-shadow .15s}.camera .top .shutter:hover{box-shadow:1px 1px 1px #fff3 inset,0 0 2px 6px #dfdad7,0 0 18px 8px #da110759,1px 6px 10px #66514d,-1px -7.5px 1px #fff}.camera .top .shutter:active{transform:scale(.9)}.camera .top .shutter:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.camera .top .shutter.flash-pulse{animation:shutterPulse .35s ease}.camera .top .shutter:not(:disabled):not(.flash-pulse){animation:shutterGlow 2.5s ease-in-out infinite}@keyframes shutterGlow{0%,to{transform:scale(1);box-shadow:1px 1px 1px #fff3 inset,0 0 2px 6px #dfdad7,1px 6px 10px #66514d,-1px -7.5px 1px #fff}50%{transform:scale(1.06);box-shadow:1px 1px 1px #fff3 inset,0 0 2px 6px #dfdad7,0 0 14px 6px #da11074d,1px 6px 10px #66514d,-1px -7.5px 1px #fff}}@keyframes shutterPulse{0%{box-shadow:1px 1px 1px #fff3 inset,0 0 2px 6px #dfdad7,1px 6px 10px #66514d,-1px -7.5px 1px #fff}25%{box-shadow:1px 1px 1px #fff3 inset,0 0 2px 6px #dfdad7,0 0 30px 14px #ff5050a6,1px 6px 10px #66514d,-1px -7.5px 1px #fff;transform:scale(.88)}to{box-shadow:1px 1px 1px #fff3 inset,0 0 2px 6px #dfdad7,0 0 10px 4px #da110733,1px 6px 10px #66514d,-1px -7.5px 1px #fff;transform:scale(1)}}.camera .top .viewfinder{position:absolute;background-color:#1b1a18;width:110px;height:110px;border-radius:20px;right:20px;top:20px;box-shadow:.5px .5px 1px 1.5px #f1edee,1.5px 1px 1px 1px #3b3535 inset,2px 2px 1px 1px #9f9e9c inset,-.5px -2px 1.5px #9b9a98 inset,1px 1.5px .5px 1px #fbf7f8}.camera .top .viewfinder>.glass{position:absolute;background-color:#fff;width:75px;height:75px;left:18px;top:18px;border-radius:20px;background-image:radial-gradient(rgba(236,234,237,.3) 50%,transparent 60%),radial-gradient(rgba(193,189,186,.3) 50%,transparent 60%),radial-gradient(#5b5758 45%,#302c2d,#131112);background-size:106% 32%,106% 25%,100%;background-repeat:no-repeat;background-position:-3px -7px,bottom -8px left -3px,center;box-shadow:0 0 1px #010000 inset,0 0 1px 1px #393836 inset,0 0 2px 2px #010000 inset,0 0 2px 4px #393836 inset,0 0 1.5px 4.5px #010000 inset,-.5px -1px 1px #5f5e5c,.25px 2px 2px #464543}.camera .top .viewfinder>.glass .back{position:absolute;background-image:linear-gradient(#eceaed,#e2e0e1);width:40px;height:40px;left:18px;top:19px;border-radius:10px;box-shadow:.5px 2px 2px #5e5b56,0 1px 3px #cac4c5,-4px 0 5px #090705bf,1px 1px 1px 1px #f1ecf0 inset,1.5px 1.5px 1px 1px #d1d0ce inset;border:.5px solid rgba(9,7,5,.75)}.camera .top .timer{position:absolute;width:23px;height:23px;border-radius:20px;left:135px;top:35px;background-image:radial-gradient(#e8e4e5,#dedad9);box-shadow:0 .5px 1px .5px #605c5b,1px 1px 1px #fffbfc inset}.camera .top .sensor{position:absolute;width:23px;height:23px;border-radius:20px;left:135px;top:70px;background-image:radial-gradient(#080607,transparent 50%),radial-gradient(#0b090a,#211f20,#131112,#383637,#100e0f,#383637,#100e0f);background-size:60%,100%;background-position:-6px -3px,center;background-repeat:no-repeat;box-shadow:0 .5px 1px .75px #fffbfc,0 -1px 1px #635f5e}.camera .top .power{position:absolute;width:28px;height:28px;border-radius:20px;right:150px;top:195px;background-image:radial-gradient(#000 30%,#252525,#171717,#020001,#242223,#383637);box-shadow:0 .5px 1px .75px #c6c1c0,0 -.5px .5px .25px #1a1819,-5px -8px 8px 1px #56525266}.camera .top .toggle-container{position:absolute;width:50px;height:22px;border-radius:20px;right:50px;top:145px;background-image:linear-gradient(#cc7b00 10%,#b26701);box-shadow:.2px .2px .5px .5px #935723 inset,.5px 1px .75px .25px #fce9d8}.camera .top .toggle-container .toggle{position:absolute;width:20px;height:20px;border-radius:20px;right:0;left:0;margin-left:auto;margin-right:auto;top:1px;background-image:radial-gradient(#fbc00a,#ffdb09);box-shadow:.5px 1px .75px .25px #ffed71 inset,0 -.5px .5px .5px #e6a11f inset,-1px .5px 4px 1px #964900}.camera .bottom{display:block;width:100%;height:165px;position:absolute;bottom:0;border-radius:11px 11px 30px 30px;background-image:radial-gradient(#E1DFE2 60%,transparent 60%),radial-gradient(#E1DFE2 60%,transparent 60%),linear-gradient(90deg,#e1dfe2,#eae8eb),linear-gradient(90deg,#eae8eb,#e1dfe2),linear-gradient(90deg,#85817e,#2f2b2b00 5%,#2f2b2b00 95%,#696461),linear-gradient(#4e4a49,#100c0d),linear-gradient(#312f32,#2a2a27,#363233);background-size:50px 60px,50px 60px,185px 30px,185px 30px,100% 100%,100% 20px,100% 100%;background-repeat:no-repeat;background-position:160px -26px,360px -26px,top right,top left,top left,bottom left,bottom left;box-shadow:-1px 3px 2px #f9f7f8a6 inset}.camera .bottom .printer{display:block;width:470px;height:40px;margin-left:auto;margin-right:auto;margin-top:60px;border-radius:3px;background-image:linear-gradient(90deg,#474548 90%,#343233 90%),linear-gradient(90deg,#0e090d 10%,#4a4849 10%),linear-gradient(#4c4a4d 4%,#161214 9%,#161214 20%,#484445 30%,#484445,#1a1617 80%,#1a1617 93%,#b0afad 99%);background-size:8px 100%,8px 100%,100% 100%;background-repeat:no-repeat;background-position:top left,top right}.camera .bottom .labels .rainbow{display:block;width:40px;height:46px;position:absolute;top:100px;left:80px;background-image:linear-gradient(#1d160f 5%,#0e9ee0 5%,#0e9ee0 14%,#1f211a 14%,#1f211a 19%,#0eae4f 19%,#0eae4f 32%,#2b2106 32%,#2b2106 37%,#ffb404 37%,#ffb404 50%,#2a1303 50%,#2a1303 55%,#fe8204 55%,#fe8204 68%,#292313 68%,#292313 80%,#e02d28 80%)}.camera .bottom .labels .logo{font-family:Helvetica Neue,Helvetica,sans-serif;font-size:24px;font-weight:600;color:#cdccc8;text-align:center;margin-top:8px}.camera .bottom>.toggle-container{display:block;width:135px;height:35px;position:absolute;margin-left:auto;margin-right:auto;left:0;right:0;border-radius:0 0 10px 10px;background-image:radial-gradient(#353334,#4C4849 40%,transparent 70%),radial-gradient(#29272A,#464445 40%,transparent 70%),linear-gradient(#8b8786 10%,#5e5a5b 20%,#5e5a5b 65%,#969291);background-size:70px 70px,70px 70px,100% 100%;background-repeat:no-repeat;background-position:top -25px left -40px,top -15px right -35px,top right}.camera .bottom>.toggle-container .toggle{position:absolute;display:block;width:100px;height:20px;top:6px;left:0;right:0;margin-left:auto;margin-right:auto;border-radius:10px;background-image:linear-gradient(#747371 2%,#525055 2%,#565152,#535250);border:.5px solid #141011}.camera .bottom>.toggle-container .toggle .handle{display:block;position:absolute;width:20px;height:20px;right:0;top:-2px;background-image:radial-gradient(#525051,#4b4746);border-radius:10px;border:.5px solid rgba(133,129,128,.15);box-shadow:-1px 5px 5px #181619}.print-slot{position:absolute;width:280px;top:243px;bottom:20px;left:50%;transform:translate(-50%);z-index:8;overflow:hidden}.print-slot.revealed{overflow:visible}.polaroid-print{position:absolute;left:0;right:0;margin:0 auto;width:228px;background:#fefefe;border-radius:4px;padding:12px 12px 50px;box-shadow:var(--shadow-md);will-change:transform;transform-origin:center bottom;background-image:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.004) 3px,rgba(0,0,0,.004) 6px);background-color:#fefefe}.print-photo{position:relative;width:100%;aspect-ratio:1 / 1;background:#222;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.print-photo img{width:100%;height:100%;object-fit:cover;display:block;opacity:0}.polaroid-print.developed .print-photo img{opacity:1;transition:opacity 1.8s ease-in-out}.print-photo .develop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#b8b4b0,#c4c0bc,#afaba7);z-index:2;opacity:1}.polaroid-print.developed .print-photo .develop-overlay{opacity:0;transition:opacity 1.8s ease-in-out}.print-date{text-align:center;margin-top:8px;font-family:Playfair Display,serif;font-size:13px;color:var(--text-muted);transition:opacity .8s ease .4s}@media (max-width: 600px){.camera{transform:scale(.4);margin-bottom:-280px}.camera-modal{min-height:600px}.print-slot{width:220px;top:194px}.polaroid-print{width:190px}}.space-overlay{z-index:250}.space-modal{width:520px;max-width:90vw;max-height:90vh;overflow-y:auto;background:var(--card);border-radius:24px;box-shadow:0 20px 60px #0003;position:relative}.close-space{position:absolute;top:20px;right:20px;width:32px;height:32px;border-radius:50%;border:none;background:#0000000d;color:var(--text-muted);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:10}.close-space:hover{background:#0000001a;color:var(--text);transform:rotate(90deg)}.space-header{padding:40px 32px 24px;border-bottom:1px solid var(--border)}.space-title{font-family:Playfair Display,serif;font-size:24px;font-weight:600;color:var(--text);margin-bottom:8px}.space-subtitle{font-size:14px;color:var(--text-muted)}.space-form{padding:32px;display:flex;flex-direction:column;gap:28px}.space-field{display:flex;flex-direction:column;gap:8px}.space-field span{font-size:13px;font-weight:600;color:var(--text)}.space-field input{padding:12px 16px;border:1px solid var(--border);border-radius:10px;font-family:inherit;font-size:14px;color:var(--text);outline:none;transition:all .2s}.space-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c964421a}.space-section{display:flex;flex-direction:column;gap:12px}.space-label{font-size:13px;font-weight:600;color:var(--text)}.icon-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.icon-btn{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:24px;background:#00000008;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s}.icon-btn:hover{background:#0000000f;transform:scale(1.05)}.icon-btn.selected{background:var(--accent);border-color:var(--accent);transform:scale(1.1)}.color-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.color-btn{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s}.color-btn:hover{transform:scale(1.05);box-shadow:0 2px 8px #0000001a}.color-btn.selected{border-color:#0003;transform:scale(1.1);box-shadow:0 4px 12px #00000026}.shape-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.shape-btn{padding:12px 16px;background:#00000008;border:2px solid transparent;font-family:inherit;font-size:14px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .2s}.shape-btn:hover{background:#0000000f;color:var(--text)}.shape-btn.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.shape-btn.shape-rounded{border-radius:12px}.shape-btn.shape-circle{border-radius:24px}.shape-btn.shape-square{border-radius:4px}.shape-btn.shape-pill{border-radius:20px}.space-preview-section{display:flex;flex-direction:column;gap:12px;padding:20px;background:linear-gradient(135deg,#fef7f0,#f5f2ec);border-radius:16px}.space-preview{display:flex;justify-content:center}.preview-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;font-size:14px;font-weight:500;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 8px #00000014}.preview-pill.shape-rounded{border-radius:12px}.preview-pill.shape-circle{border-radius:24px}.preview-pill.shape-square{border-radius:4px}.preview-pill.shape-pill{border-radius:20px}.preview-icon{font-size:18px;line-height:1}.preview-name{font-weight:600}.preview-count{font-size:12px;opacity:.7;margin-left:2px}.space-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:8px}.search-overlay{z-index:250}.search-modal{width:600px;max-width:90vw;max-height:90vh;overflow-y:auto;background:var(--card);border-radius:24px;box-shadow:0 20px 60px #0003;position:relative}.close-search{position:absolute;top:20px;right:20px;width:32px;height:32px;border-radius:50%;border:none;background:#0000000d;color:var(--text-muted);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:10}.close-search:hover{background:#0000001a;color:var(--text);transform:rotate(90deg)}.search-header{padding:40px 32px 24px;border-bottom:1px solid var(--border)}.search-title{font-family:Playfair Display,serif;font-size:24px;font-weight:600;color:var(--text);margin-bottom:8px}.search-subtitle{font-size:14px;color:var(--text-muted)}.search-body{padding:32px;display:flex;flex-direction:column;gap:28px}.search-section{display:flex;flex-direction:column;gap:12px}.search-label{font-size:13px;font-weight:600;color:var(--text)}.date-range-inputs{display:flex;align-items:center;gap:12px}.date-input{flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:12px;font-family:inherit;font-size:14px;color:var(--text);outline:none;transition:all .2s}.date-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c964421a}.date-separator{font-size:14px;color:var(--text-muted);font-weight:500}.tag-cloud{display:flex;flex-wrap:wrap;gap:8px}.tag-filter-btn{padding:8px 16px;background:#00000008;border:1px solid var(--border);border-radius:20px;font-family:inherit;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .2s}.tag-filter-btn:hover{background:#0000000f;border-color:#aaa;color:var(--text)}.tag-filter-btn.selected{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.05)}.search-results-preview{padding:20px;background:linear-gradient(135deg,#fef7f0,#f5f2ec);border-radius:16px;display:flex;flex-direction:column;gap:16px}.results-count{font-size:14px;font-weight:600;color:var(--text)}.results-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.result-thumb{aspect-ratio:1;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 2px 8px #00000014}.result-thumb img{width:100%;height:100%;object-fit:cover}.result-thumb.more{display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--text-muted);background:#fffc}.search-actions{display:flex;justify-content:flex-end;gap:12px;padding:24px 32px;border-top:1px solid var(--border)}.polaroid-container{perspective:1000px;animation:scaleIn .4s ease-out backwards}.polaroid-inner{position:relative;width:100%;transform-style:preserve-3d}.polaroid-front,.polaroid-back{backface-visibility:hidden;-webkit-backface-visibility:hidden;background-color:#fefefe;background-image:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.004) 3px,rgba(0,0,0,.004) 6px);border-radius:4px;box-shadow:var(--shadow-md)}.polaroid-front{position:relative;padding:12px 12px 0}.polaroid-image-area{position:relative;overflow:hidden;border-radius:1px;border:1px solid rgba(0,0,0,.08)}.polaroid-front img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}.date-row{display:flex;align-items:center;justify-content:space-between;padding:14px 4px 16px}.polaroid-front .date{font-family:Playfair Display,serif;font-size:13px;color:var(--text-muted)}.polaroid-back{position:absolute;top:0;left:0;width:100%;height:100%;transform:rotateY(180deg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;text-align:center}.back-title{font-family:Playfair Display,serif;font-size:18px;font-weight:600;color:var(--text)}.back-description{font-size:14px;color:var(--text-muted);line-height:1.6;padding:0 4px;font-style:italic}.back-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.polaroid-edit-btn{position:absolute;top:22px;right:22px;width:32px;height:32px;border-radius:50%;border:none;background:#ffffffd9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;z-index:2}.polaroid-container:hover .polaroid-edit-btn{opacity:1}.polaroid-edit-btn:hover{background:#fff;transform:scale(1.1)}@media (hover: none){.polaroid-edit-btn{opacity:1}}.polaroid-hover-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,#0006,#0000 40%,#0000 55%,#00000080);opacity:0;transition:opacity .25s ease;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:10px 12px;z-index:1}.polaroid-container:hover .polaroid-hover-overlay{opacity:1;pointer-events:auto}.polaroid-container:hover .polaroid-edit-btn{opacity:0}.overlay-top{display:flex;justify-content:space-between;align-items:flex-start}.overlay-space-label{background:#fff3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px}.overlay-edit-btn{width:28px;height:28px;border-radius:50%;border:none;background:#ffffff40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.overlay-edit-btn:hover{background:#ffffff73}.overlay-bottom{display:flex;flex-direction:column;gap:6px}.overlay-bottom .overlay-tags{display:flex;flex-wrap:wrap;gap:4px}.overlay-tag{background:#fff3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:10px;font-weight:500;padding:2px 8px;border-radius:10px}.flip-btn{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--text-muted);background:transparent;font-family:inherit;font-size:7px;font-weight:600;letter-spacing:.3px;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.polaroid-back .flip-btn{position:absolute;bottom:14px;right:14px}.flip-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}@media (hover: none){.polaroid-hover-overlay{display:none}.polaroid-container:hover .polaroid-edit-btn{opacity:1}}.clothesline-container{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;opacity:1;overflow:hidden}.clothesline-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0px 6px 3px rgba(0,0,0,.06))}.clothesline-string{fill:none;stroke:#ffffffe6;stroke-width:1.5;stroke-linecap:round}.photo-on-line{position:absolute;top:0;transform-origin:top center;cursor:pointer}.photo-on-line-inner{position:relative;display:inline-flex;flex-direction:column;align-items:center}.clothespin{position:absolute;top:-12px;left:50%;transform:translate(-50%);width:12px;height:34px;pointer-events:none;z-index:5}.pin-prong{position:absolute;width:5px;border-radius:2px 2px 1px 1px;box-shadow:0 2px 4px #0003}.pin-prong-back{left:1px;top:0;height:34px;z-index:1;background:linear-gradient(180deg,#b89b72,#a68a61)}.pin-prong-front{right:1px;top:0;height:34px;z-index:4;background:linear-gradient(180deg,#d4b896,#c4a882);filter:drop-shadow(-2px 2px 2px rgba(0,0,0,.3))}.pin-spring{position:absolute;top:10px;left:50%;transform:translate(-50%);width:12px;height:10px;border-radius:3px;background:linear-gradient(90deg,#999,#ccc,#888);box-shadow:0 1px 2px #0006;z-index:5}.mini-polaroid{position:relative;z-index:2;width:120px;background-color:#fdfdfd;background-image:url("data:image/svg+xml,%3Csvg width='100' height='100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");border-radius:2px;box-shadow:0 8px 16px #00000014,0 2px 4px #0000000a;padding:10px 10px 0;margin-top:12px;transition:box-shadow .4s ease,transform .4s ease;overflow:hidden}.photo-on-line:hover .mini-polaroid{box-shadow:0 16px 32px #00000026,0 4px 8px #00000014}.photo-glare{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,#fff0 30%,#fff6,#fff0 70%);z-index:10;pointer-events:none;mix-blend-mode:overlay}.mini-polaroid-image{position:relative;z-index:3;border-radius:1px;border:1px solid rgba(0,0,0,.05);overflow:hidden;aspect-ratio:1 / 1;background:#e4dacb;box-shadow:inset 0 2px 4px #0000001a}.mini-polaroid-image img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.mini-polaroid-caption{padding:10px 2px 16px;font-family:Playfair Display,serif;font-size:10px;color:#555;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dust-particle{position:absolute;background:#fff;border-radius:50%;opacity:0;pointer-events:none;filter:blur(1px);animation:float-wind linear infinite}@keyframes float-wind{0%{transform:translate(0);opacity:0}10%{opacity:.6}90%{opacity:.6}to{transform:translate(100vw,-20vh);opacity:0}}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;background:var(--accent);position:relative;overflow:hidden}.auth-hero-text{position:absolute;top:8%;left:0;right:0;z-index:1;font-family:Playfair Display,serif;font-size:clamp(90px,18vw,220px);font-weight:700;color:#fff;letter-spacing:-2px;margin:0;text-align:center;-webkit-user-select:none;user-select:none;pointer-events:none;line-height:1}.auth-form-area{position:absolute;top:64%;left:0;right:0;z-index:10;display:flex;justify-content:center}.auth-form{width:360px;max-width:85vw;display:flex;flex-direction:column;gap:12px}.auth-input{width:100%;height:50px;padding:0 18px;background:#ffffff26;border:1.5px solid rgba(255,255,255,.4);border-radius:12px;font-family:inherit;font-size:16px;color:#fff;outline:none;transition:border-color .2s,box-shadow .2s,background .2s;box-sizing:border-box;text-align:center}.auth-input:focus{border-color:#ffffffb3;box-shadow:0 0 0 3px #ffffff1a;background:#fff3}.auth-input::placeholder{color:#ffffff8c;font-style:italic}.auth-start{width:100%;height:50px;background:#fff;color:var(--accent);border:none;border-radius:12px;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s,transform .1s,box-shadow .2s;letter-spacing:.2px}.auth-start:hover:not(:disabled){background:#ffffffeb;transform:translateY(-1px);box-shadow:0 4px 16px #00000026}.auth-start:active:not(:disabled){transform:translateY(0)}.auth-start:disabled{opacity:.4;cursor:not-allowed}.auth-error{color:#fff;font-size:12px;padding:6px 10px;background:#00000026;border-radius:8px;text-align:center}.auth-footer{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:4px;font-size:11px;color:#fff9;letter-spacing:.15px;white-space:nowrap}.auth-footer svg{opacity:.6;flex-shrink:0}@media (max-width: 600px){.auth-form-area{top:62%}.auth-form{width:300px}.auth-hero-text{letter-spacing:-1px}}@media (max-width: 400px){.auth-hero-text{font-size:60px}.auth-form-area{top:66%}}
