@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";: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}}@keyframes float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(-1deg)}}@keyframes pulse-glow{0%,to{box-shadow:0 15px 40px #87ceeb66,0 0 0 8px #fffc}50%{box-shadow:0 20px 50px #87ceeb99,0 0 0 12px #ffffffe6}}:root{--emboss-face: inset 0 1px 0 rgba(255, 255, 255, .65), inset 0 -2px 3px rgba(0, 95, 135, .3);--emboss-face-strong: inset 0 1px 0 rgba(255, 255, 255, .8), inset 0 -2px 3px rgba(0, 95, 135, .32);--emboss-press: inset 0 2px 4px rgba(0, 85, 120, .45), inset 0 -1px 0 rgba(255, 255, 255, .35);--emboss-ink: 0 1px 1px rgba(0, 80, 115, .45);--emboss-ink-light: 0 1px 1px rgba(255, 255, 255, .8)}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;overflow-x:hidden;font-family:Inter,sans-serif;background:linear-gradient(135deg,#f0f8ff,#e6f3ff,#fff5e6 50%,#f0f8ff);color:#23458b}#root{width:100%;max-width:none;min-height:100vh;min-height:100dvh;display:flex;justify-content:center;align-items:center}.landing-page{padding:clamp(1rem,4vw,2rem);padding-bottom:3.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;width:100%;min-height:100vh;min-height:100dvh}.hero-section{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(1rem,3vw,2rem);width:100%;max-width:800px;margin:0 auto;text-align:center}.album-cover-container{position:relative;z-index:2}.album-cover{width:min(320px,78vw);aspect-ratio:4 / 3;height:auto;background:linear-gradient(45deg,#87ceeb,#00bfff,#f7df57,#f7e96b,#87ceeb);border:4px solid #fff;border-radius:24px;box-shadow:0 15px 40px #87ceeb66,0 0 0 8px #fffc;position:relative;overflow:hidden;transition:all .4s cubic-bezier(.25,.46,.45,.94);cursor:pointer;transform:rotate(-2deg);animation:float 6s ease-in-out infinite,pulse-glow 4s ease-in-out infinite}.album-cover:hover,.album-cover.hover{transform:translateY(-10px) rotate(1deg) scale(1.05);box-shadow:0 25px 50px #87ceeb99,0 0 0 12px #ffffffe6}.cover-photo{position:relative;width:100%;height:100%;padding:20px}.cover-photo img{width:100%;height:calc(100% - 30px);object-fit:cover;border-radius:4px;border:3px solid #f5f5dc}.photo-count{position:absolute;bottom:25px;right:25px;background:#000000b3;color:#fff;padding:4px 8px;border-radius:4px;font-size:.8rem;font-family:Courier New,monospace}.empty-cover{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:beige;text-align:center}.cover-icon{font-size:3rem;margin-bottom:.5rem}.album-info{text-align:center}.album-title-input{background:#ffffffe6;border:3px solid #87ceeb;font-family:Inter,sans-serif;font-size:clamp(1.05rem,3.5vw,1.3rem);width:min(100%,420px);max-width:100%;font-weight:600;color:#23458b;text-align:center;margin-bottom:1.5rem;transition:all .3s cubic-bezier(.25,.46,.45,.94);padding:1.2rem 2rem;border-radius:20px;box-shadow:0 8px 25px #87ceeb4d,inset 0 2px 4px #fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2;position:relative}.album-title-input:hover,.album-title-input:focus{outline:none;background:#fff;box-shadow:0 12px 30px #87ceeb80,inset 0 3px 6px #ffffffe6;border-color:#00bfff;transform:translateY(-3px) scale(1.02)}.album-subtitle{font-style:italic;color:#4682b4;margin-bottom:2rem;font-size:1.2rem;text-shadow:0 1px 2px rgba(255,255,255,.8)}.upload-section,.open-album-button{margin-top:1.5rem}.file-input{display:none}.upload-button,.open-album-button{background:linear-gradient(45deg,#87ceeb,#00bfff,#f4e27c,#f3e781);color:#23458b;border:3px solid rgba(255,255,255,.8);padding:clamp(.9rem,3vw,1.2rem) clamp(1.25rem,6vw,2.5rem);font-size:clamp(.95rem,3vw,1.1rem);max-width:100%;text-align:center;justify-content:center;font-family:Inter,sans-serif;font-weight:700;border-radius:25px;cursor:pointer;box-shadow:inset 0 2px #ffffffbf,inset 0 -3px 5px #005f8740,0 3px 4px #0b699140,0 8px 25px #87ceeb66;transition:box-shadow .3s cubic-bezier(.25,.46,.45,.94),transform .3s cubic-bezier(.25,.46,.45,.94),background .3s ease;display:inline-block;gap:.75rem;z-index:2;position:relative;text-shadow:var(--emboss-ink-light)}.upload-button:hover,.open-album-button:hover{transform:translateY(-4px) scale(1.02);box-shadow:inset 0 2px #ffffffe6,inset 0 -3px 5px #005f8747,0 6px 8px #0b699147,0 14px 35px #87ceeb99;background:linear-gradient(45deg,#00bfff,#87ceeb,#ffeb3b,gold)}.upload-button:active,.open-album-button:active{transform:translateY(0) scale(1);box-shadow:inset 0 3px 6px #00557859,inset 0 -2px #ffffff80,0 2px 6px #87ceeb4d}.features-preview{display:flex;gap:2rem;margin-top:3rem;flex-wrap:wrap;justify-content:center}.feature{text-align:center;max-width:200px}.feature-icon{font-size:2rem;margin-bottom:.5rem}.feature h3{margin:0 0 .5rem;color:#2c1810}.feature p{margin:0;color:#183d6e;font-size:.9rem}.album-book{height:100vh;height:100dvh;width:100%;display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(135deg,#f0f8ff,#e6f3ff);color:#2c3e50;position:relative}.album-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;flex-shrink:0;padding:1rem clamp(.75rem,3vw,2rem);background:#fffc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(176,196,222,.3);min-height:60px;box-sizing:border-box;box-shadow:0 2px 10px #b0c4de1a}.header-left,.header-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.back-button{background:linear-gradient(180deg,#5cd8ff,#3dcfff 55%,#46b8e0);border:1px solid rgba(0,122,168,.4);border-top-color:#fff9;color:#fff;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-family:Inter,sans-serif;font-weight:600;text-shadow:var(--emboss-ink);transition:box-shadow .18s ease,transform .18s ease,background .18s ease;box-shadow:var(--emboss-face),0 2px 3px #0b699140,0 6px 14px #87ceeb4d}.back-button:hover{background:linear-gradient(180deg,#74e0ff,#4fd6ff 55%,#55c3ea);transform:translateY(-1px);box-shadow:var(--emboss-face-strong),0 4px 6px #0b699147,0 10px 20px #87ceeb61}.back-button:active{transform:translateY(1px);background:linear-gradient(180deg,#46b8e0,#3dcfff 45%,#5cd8ff);border-top-color:#007aa866;box-shadow:var(--emboss-press),0 1px 2px #0b699133}.album-title{font-size:clamp(1.15rem,3.2vw,1.8rem);margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;letter-spacing:-.01em;background:linear-gradient(100deg,#2991d2,#00bfff 40% 80%,#2991d2);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 -1px 0 rgba(255,255,255,.95)) drop-shadow(0 1px 0 rgba(0,95,135,.35)) drop-shadow(0 2px 1px rgba(11,105,145,.18))}.page-indicator{font-size:.9rem;color:#14667dcc;font-weight:500}.book-container{display:flex;justify-content:center;align-items:center;flex:1;min-height:0;padding:clamp(.25rem,1.5vw,1rem);position:relative;width:100%;box-sizing:border-box;overflow:hidden}.book-spread{display:flex;width:100%;height:100%;max-width:1600px;position:relative;transition:transform .6s ease-in-out;box-sizing:border-box}.book-spread.mobile-view{max-width:100%}.book-page.single-page{width:100%;max-width:100%}.book-spread.turning{transform:perspective(2000px) rotateY(-10deg)}.book-spine{order:1;flex:0 0 20px;width:20px;background:linear-gradient(to right,#0000004d,#0000001a,#0000004d);box-shadow:inset 2px 0 4px #00000080,inset -2px 0 4px #00000080;z-index:10}.book-page{flex:1 1 0;min-width:0;background:#ffffe0;color:#2c3e50;padding:clamp(.75rem,2vw,2rem);border:none;border-radius:0;box-shadow:inset 0 0 20px #b0c4de1a,0 5px 15px #0000001a;position:relative;overflow:visible;display:flex;flex-direction:column;box-sizing:border-box;min-height:0;z-index:2;margin:0;background-image:linear-gradient(rgba(176,196,222,.2) 1px,transparent 1px);background-size:20px 20px;border-left:1px solid rgba(176,196,222,.2);border-right:1px solid rgba(176,196,222,.2)}.left-page{order:0;border-top-left-radius:8px;border-bottom-left-radius:8px}.right-page{order:2;border-top-right-radius:8px;border-bottom-right-radius:8px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;border-bottom:1px solid rgba(176,196,222,.2);padding-bottom:1rem}.date-header{font-size:clamp(1.1rem,2.2vw,1.8rem);color:#2c3e50;margin:0;font-family:Inter,sans-serif;font-weight:600}.page-number{font-size:.9rem;color:#0f6a7fe6;font-family:Inter,sans-serif;font-weight:500}.index-page{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;text-align:center;box-sizing:border-box}.index-title h1{font-size:3rem;color:#2c3e50;margin:0;font-family:cursive;font-weight:900;text-shadow:0 2px 10px rgba(0,0,0,.1)}.favorites-header{display:flex;justify-content:space-between;align-items:center;width:100%}.videos-page{display:flex;flex-direction:column;height:100%}.empty-videos{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;text-align:center;color:#2c3e50}.empty-videos-icon{font-size:4rem;margin-bottom:1rem;opacity:.7;background:linear-gradient(45deg,#00bfff,#87ceeb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.empty-videos h3{margin:0 0 .5rem;font-size:1.5rem;color:#2c3e50;font-weight:600}.empty-videos p{margin:0;font-style:italic;font-size:1.1rem;color:#666}.export-buttons{display:flex;gap:.5rem}.export-button,.export-html{background:linear-gradient(180deg,#3cf,#00b3f5 55%,#0aa3dd);color:#fff;border:1px solid rgba(0,122,168,.45);border-top-color:#fff9;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.8rem;font-family:Inter,sans-serif;font-weight:600;letter-spacing:.01em;text-shadow:var(--emboss-ink);transition:box-shadow .18s ease,transform .18s ease,background .18s ease;box-shadow:var(--emboss-face),0 2px 3px #0b699147,0 6px 14px #32bbcd4d;display:inline-flex;align-items:center;gap:.25rem}.export-button:hover,.export-html:hover{background:linear-gradient(180deg,#47d4ff,#06bcff 55%,#14aee8);transform:translateY(-1px);box-shadow:var(--emboss-face-strong),0 4px 6px #0b69914d,0 10px 20px #32bbcd61}.export-button:active,.export-html:active{transform:translateY(1px);background:linear-gradient(180deg,#0aa3dd,#00b3f5 45%,#3cf);border-top-color:#007aa873;box-shadow:var(--emboss-press),0 1px 2px #0b699133}.export-button:focus-visible,.export-html:focus-visible{outline:2px solid #007aa8;outline-offset:2px}.empty-favorites{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;text-align:center;color:#173970}.empty-favorites-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-favorites h3{margin:0 0 .5rem;font-size:1.5rem;color:#23458b}.empty-favorites p{margin:0;font-style:italic;font-size:1.1rem}.photos-grid{display:grid;gap:.5rem;justify-items:center;align-items:start;flex:1;padding:0;height:fit-content;min-height:0;overflow:visible;transition:transform .3s ease;grid-auto-rows:min-content}.masonry-grid{display:grid;gap:1rem;justify-items:center;align-items:center;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);justify-content:space-evenly;align-content:center;height:100%;width:100%;padding:1rem}@media (min-width: 1200px){.photos-grid:not(.masonry-grid){grid-template-columns:repeat(2,1fr)}.masonry-grid{grid-template-columns:repeat(2,1fr)}.video-container{width:100%;height:100%}.book-spread{margin:0 auto}}@media (min-width: 769px) and (max-width: 1199px){.photos-grid:not(.masonry-grid){grid-template-columns:repeat(2,1fr)}.masonry-grid{grid-template-columns:repeat(2,1fr)}.video-container{width:100%;height:100%}.book-page{padding:.75rem}.book-container{padding:.5rem}.book-spread{margin:0 auto}}@media (max-width: 768px){.photos-grid,.masonry-grid{grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr));align-content:center;justify-content:center;height:100%;gap:.5rem;padding:.5rem}.video-container{width:100%;height:100%}.index-title h1{font-size:2rem}}.polaroid-photo{position:relative;cursor:pointer;transition:all .3s ease;margin:.25rem;width:fit-content;max-width:100%;min-width:0}.polaroid-photo:hover{transform:scale(1.05) rotate(0)!important;z-index:5;box-shadow:0 8px 25px #00000026}.polaroid-photo.small{max-width:120px}.polaroid-photo.medium{box-sizing:border-box}.polaroid-photo.large{max-width:280px}.polaroid-frame{background:#fff;padding:12px;border:none;border-radius:8px;box-shadow:0 4px 15px #87ceeb33;position:relative;width:fit-content;max-width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center}.photo-container{position:relative;overflow:hidden;border-radius:1px}.photo-image{width:100%;height:100%;object-fit:contain;display:block;background:#f8f8f8;border-radius:4px;border:none}.video-container{position:relative;width:100%;height:100%;overflow:hidden;border-radius:4px;background:#fff}.video-thumbnail{object-fit:cover}.video-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.play-button{background:#000000b3;color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;margin-bottom:5px}.video-duration{background:#000000b3;color:#fff;padding:2px 6px;border-radius:3px;font-size:.7rem;font-family:Courier New,monospace;text-align:center}.photo-overlay{position:absolute;top:5px;right:5px;opacity:0;transition:opacity .3s ease;display:flex;gap:5px}.polaroid-photo:hover .photo-overlay,.photo-overlay.has-favorite{opacity:1}.edit-button,.star-button{background:#000000b3;color:#fff;border:none;border-radius:50%;width:30px;height:30px;cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:5px}.star-button{width:auto;height:auto;padding:0;font-size:1.5rem;line-height:1;background:none;border:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;transition:transform .18s ease}.star-glyph{display:block;color:transparent;-webkit-text-stroke:1.5px #ffd700;paint-order:stroke fill;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));transition:color .18s ease,transform .18s ease}.star-button:hover{transform:scale(1.12)}.star-button:hover .star-glyph{color:#ffd70080}.star-button:active{transform:scale(1.02)}.star-button.is-favorite{background:none;border:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;width:auto;height:auto;font-size:1.5rem}.star-button.is-favorite:hover{background:none;box-shadow:none;transform:scale(1.12)}.star-button.is-favorite .star-glyph,.star-button.is-favorite:hover .star-glyph{color:initial;-webkit-text-stroke:0;transform:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.star-button:focus-visible{outline:2px solid #007aa8;outline-offset:2px}@media (hover: none){.photo-overlay{opacity:1}}.polaroid-caption{margin-top:10px;height:25px;display:flex;align-items:center;justify-content:center}.caption-content,.edit-form{text-align:center;font-family:Courier New,monospace;font-size:.8rem;color:#333;width:100%}.location-text{font-weight:700;margin-bottom:2px}.description-text{font-style:italic}.empty-caption{color:#999;font-size:.7rem}.edit-form{display:flex;flex-direction:column;gap:5px}.location-input,.description-input{width:100%;border:1px solid #ccc;border-radius:2px;padding:2px 4px;font-size:.7rem;font-family:Courier New,monospace}.edit-buttons{display:flex;gap:5px;justify-content:center}.save-btn,.cancel-btn{background:none;border:1px solid #999;border-radius:2px;padding:2px 6px;cursor:pointer;font-size:.7rem}.save-btn:hover{background:#25cbdd;color:#fff}.cancel-btn:hover{background:#d4ef25;color:#0e0e0e}.navigation-controls{position:absolute;top:50%;left:0;right:0;display:flex;justify-content:space-between;padding:0 1rem;pointer-events:none;transform:translateY(-50%);z-index:100;overflow:visible}.nav-button{background:linear-gradient(180deg,#9be3ff,#61d2ff 55%,#46b8e0);color:#fff;border:2px solid rgba(0,122,168,.3);width:60px;height:60px;border-radius:50%;font-size:1.8rem;font-weight:700;cursor:pointer;transition:all .3s ease;pointer-events:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;box-shadow:var(--emboss-face),0 3px 4px #0b699140,0 6px 20px #87ceeb66;text-shadow:var(--emboss-ink);padding:5px}.nav-button:hover:not(:disabled){background:linear-gradient(180deg,#b3ebff,#7adaff 55%,#55c3ea);transform:scale(1.1);box-shadow:var(--emboss-face-strong),0 4px 6px #0b699147,0 10px 25px #87ceeb99}.nav-button:active:not(:disabled){transform:scale(1.02);box-shadow:var(--emboss-press),0 1px 3px #0b699133}.nav-button:disabled{opacity:.4;cursor:not-allowed;background:#c8c8c880;box-shadow:none;text-shadow:none}.photo-modal-overlay{position:fixed;inset:0;background:linear-gradient(135deg,#f0f8fff2,#e6f3fff2);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;justify-content:center;align-items:center;z-index:1000;padding:clamp(.5rem,3vw,2rem)}.photo-modal{background:#ffffe0;border-radius:8px;width:100%;max-width:1100px;max-height:90vh;max-height:90dvh;overflow:hidden;position:relative;display:flex;box-shadow:0 20px 60px #87ceeb4d;border:1px solid rgba(176,196,222,.3);background-image:linear-gradient(rgba(176,196,222,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(176,196,222,.05) 1px,transparent 1px);background-size:20px 20px}.modal-close{position:absolute;top:1rem;right:1rem;background:linear-gradient(180deg,#a5dcf2,#87ceeb 55%,#93a9c6);color:#fff;border:1px solid rgba(0,122,168,.3);border-top-color:#ffffffd9;width:45px;height:45px;border-radius:50%;font-size:1.5rem;font-weight:700;cursor:pointer;z-index:10;text-shadow:var(--emboss-ink);transition:box-shadow .3s ease,transform .3s ease,background .3s ease;display:flex;align-items:center;justify-content:center;box-shadow:var(--emboss-face),0 2px 3px #0b699140,0 4px 15px #87ceeb4d;padding:5px}.modal-close:hover{background:linear-gradient(180deg,#c2e6f7,#9bd8f0 55%,#a3b7d1);transform:scale(1.1);box-shadow:var(--emboss-face-strong),0 4px 6px #0b699147,0 6px 20px #87ceeb80}.modal-close:active{transform:scale(1.02);box-shadow:var(--emboss-press),0 1px 2px #0b699133}.modal-content{display:flex;width:100%;min-width:0;max-height:inherit}.modal-image-container{flex:2 1 0;min-width:0;display:flex;align-items:center;justify-content:center;background:#ffffe080;padding:clamp(.75rem,3vw,2rem);border-radius:8px 0 0 8px}.modal-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 10px 30px #87ceeb33;border:2px solid rgba(255,255,255,.8)}.modal-sidebar{flex:1 1 0;margin-top:20px;padding:clamp(1rem,3vw,2rem);overflow-y:auto;min-width:min(300px,40%);background:#ffffe0;border-radius:0 8px 8px 0;border-left:1px solid rgba(176,196,222,.2)}.photo-title{margin:0 0 1.5rem;color:#2c3e50;font-size:1.5rem;font-weight:600;font-family:Inter,sans-serif}.detail-group{margin-bottom:1.5rem}.detail-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#2c3e50;font-size:.9rem}.detail-input,.detail-textarea{width:100%;padding:.75rem;border:2px solid #87ceeb;border-radius:8px;background:#ffffffe6;font-family:Inter,sans-serif;color:#2c3e50;transition:all .3s ease}.detail-display{padding:.75rem;background:#87ceeb1a;border-radius:8px;font-family:Inter,sans-serif;color:#2c3e50;border:2px solid rgba(135,206,235,.3)}.detail-input:focus,.detail-textarea:focus{outline:none;border-color:#b0c4de;box-shadow:0 0 10px #b0c4de4d}.character-count{text-align:right;font-size:.8rem;color:#87ceeb;margin-top:.25rem;font-weight:500}.metadata{margin:2rem 0;padding:1rem;background:#b0c4de1a;border-radius:8px;border-left:4px solid #87ceeb;border:1px solid rgba(176,196,222,.3)}.metadata-item{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.metadata-item .label{font-weight:600;color:#2c3e50;flex-shrink:0}.metadata-item .value{color:#2c3e50;font-family:Inter,monospace;font-size:.9rem;font-weight:500;min-width:0;text-align:right;overflow-wrap:anywhere}.save-changes-button{width:100%;background:linear-gradient(180deg,#a5dcf2,#87ceeb 55%,#93a9c6);color:#fff;border:1px solid rgba(0,122,168,.35);border-top-color:#ffffffb3;padding:1rem;border-radius:8px;font-size:1rem;font-family:Inter,sans-serif;font-weight:600;cursor:pointer;text-shadow:var(--emboss-ink);transition:box-shadow .18s ease,transform .18s ease,background .18s ease;box-shadow:var(--emboss-face),0 2px 3px #0b699140,0 6px 14px #87ceeb4d}.save-changes-button:hover{transform:translateY(-1px);box-shadow:var(--emboss-face-strong),0 4px 6px #0b699147,0 10px 20px #87ceeb66;background:linear-gradient(180deg,#c2e6f7,#9bd8f0 55%,#a3b7d1)}.save-changes-button:active{transform:translateY(1px);background:linear-gradient(180deg,#93a9c6,#87ceeb 45%,#a5dcf2);border-top-color:#007aa859;box-shadow:var(--emboss-press),0 1px 2px #0b699133}@media (max-width: 768px){.landing-page{padding:2rem;min-height:100dvh;justify-content:flex-start;overflow-y:auto;margin-top:100px}.album-cover{width:min(250px,70vw)}.features-preview{flex-direction:column;align-items:center;gap:1rem;margin-top:2rem}.book-spread{height:100%;overflow:hidden}.book-spine{display:none}.book-page{height:100%;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1rem}.book-container{padding:.5rem;touch-action:pan-y}.album-header{padding:.5rem .75rem;min-height:50px}.album-title{order:3;width:100%;text-align:center}.header-left,.header-right{gap:.5rem}.export-html{font-size:.7rem;padding:.375rem .75rem}.photo-modal{flex-direction:column;max-width:100%;max-height:92dvh}.modal-content{flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-image-container{flex:0 0 auto;max-height:45dvh;padding:.75rem;border-radius:8px 8px 0 0;margin-top:30px;margin-bottom:30px}.modal-image{max-height:45dvh;width:auto}.modal-sidebar{flex:0 0 auto;min-width:0;max-height:none;overflow:visible;margin-top:0;border-left:none;border-top:1px solid rgba(176,196,222,.35);border-radius:0 0 8px 8px}.polaroid-photo.medium{max-width:min(320px,100%)}.export-buttons{flex-direction:column;gap:.25rem}.export-button{font-size:.7rem;padding:.375rem .75rem}}@media (max-width: 480px){.album-cover{width:min(200px,66vw)}.book-page{padding:.75rem;height:100%;min-height:0}.book-container{padding:.25rem}.album-header{padding:.4rem .5rem;min-height:45px}.back-button{padding:.375rem .65rem;font-size:.8rem}.page-indicator{font-size:.75rem}.index-title h1{font-size:1.7rem}.nav-button{width:44px;height:44px;font-size:1.4rem}.navigation-controls{padding:0 .25rem}.polaroid-photo{margin:.25rem}.polaroid-photo.medium{max-width:130px}.polaroid-frame{padding:8px 8px 25px}.photos-grid{gap:.5rem;padding:.25rem 0}}@media (min-width: 1200px){.book-container{width:100%;padding:.75rem}.book-page{padding:1rem}.polaroid-photo.medium{max-width:320px}.photos-grid{gap:.5rem}}@media (min-width: 1400px){.polaroid-photo.medium{max-width:350px}.book-page{padding:1.25rem}.photos-grid{gap:.5rem}}@media (min-width: 1920px){.book-spread{max-width:1800px}.polaroid-photo.medium{max-width:380px}}.export-button:disabled,.export-html:disabled{cursor:progress;opacity:.7;transform:none;box-shadow:var(--emboss-press),0 1px 2px #0b699133}.export-progress-overlay{position:fixed;inset:0;background:linear-gradient(135deg,#f0f8ffe6,#e6f3ffe6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;justify-content:center;align-items:center;z-index:2000}.export-progress-card{background:#fffffff2;border:1px solid rgba(176,196,222,.4);border-radius:16px;padding:2rem 2.5rem;width:min(360px,calc(100vw - 3rem));text-align:center;box-shadow:0 20px 45px #87ceeb59}.export-progress-spinner{width:36px;height:36px;margin:0 auto 1rem;border:3px solid rgba(135,206,235,.3);border-top-color:#00bfff;border-radius:50%;animation:export-spin .9s linear infinite}@keyframes export-spin{to{transform:rotate(360deg)}}.export-progress-title{margin:0 0 .35rem;font-size:1.1rem;font-weight:700;color:#23458b}.export-progress-label{margin:0 0 1rem;font-size:.85rem;color:#14667dcc}.export-progress-track{height:10px;background:#b0c4de4d;border-radius:999px;overflow:hidden}.export-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#87ceeb,#00bfff);transition:width .25s ease}.export-progress-percent{margin-top:.5rem;font-size:.8rem;font-weight:600;color:#23458b}.upload-progress-overlay{position:fixed;inset:0;background:linear-gradient(135deg,#f0f8ffe6,#e6f3ffe6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;justify-content:center;align-items:center;z-index:2000;padding:1rem}.upload-progress-card{background:#fffffff2;border:1px solid rgba(176,196,222,.4);border-radius:16px;padding:clamp(1.5rem,5vw,2rem) clamp(1.5rem,6vw,2.5rem);width:min(360px,calc(100vw - 2rem));text-align:center;box-shadow:0 20px 45px #87ceeb59}.upload-progress-spinner{width:36px;height:36px;margin:0 auto 1rem;border:3px solid rgba(135,206,235,.3);border-top-color:#00bfff;border-radius:50%;animation:upload-spin .9s linear infinite}@keyframes upload-spin{to{transform:rotate(360deg)}}.upload-progress-title{margin:0 0 .35rem;font-size:1.1rem;font-weight:700;color:#23458b}.upload-progress-label{margin:0 0 1rem;font-size:.85rem;color:#14667dcc}.upload-progress-track{height:10px;background:#b0c4de4d;border-radius:999px;overflow:hidden}.upload-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#87ceeb,#00bfff);transition:width .25s ease}.upload-progress-percent{margin-top:.5rem;font-size:.8rem;font-weight:600;color:#23458b}.site-footer{position:absolute;left:0;right:0;bottom:.75rem;padding:0 1rem;width:100%;text-align:center;font-size:.8rem;color:#4682b4;letter-spacing:.02em}@media (prefers-reduced-motion: reduce){.upload-progress-spinner{animation-duration:2.5s}}.favorites-export-page{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}.favorites-export-buttons{justify-content:center;flex-wrap:wrap;gap:.75rem}.page-folio{position:absolute;bottom:.85rem;font-size:.8rem;font-weight:500;color:#0f6a7fb3;font-family:Inter,sans-serif;letter-spacing:.04em;pointer-events:none}.page-folio.folio-left{left:1.25rem}.page-folio.folio-right{right:1.25rem}.album-export-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;min-height:0;text-align:center;padding:1rem}.album-export-title{margin:0;font-size:clamp(1.1rem,2vw,1.5rem);font-weight:700;color:#23458b}.album-export-note{margin:10px 30px;font-size:.9rem;font-style:italic;color:#4682b4}@media (max-width: 480px){.page-folio{bottom:.5rem;font-size:.7rem}.page-folio.folio-left{left:.75rem}.page-folio.folio-right{right:.75rem}}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:#87ceeb rgba(176,196,222,.2)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#b0c4de2e;border-radius:999px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#a5dcf2,#87ceeb 55%,#6fbfe0);border-radius:999px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#7adaff,#4fd6ff 55%,#46b8e0);background-clip:padding-box}::-webkit-scrollbar-thumb:active{background:linear-gradient(180deg,#46b8e0,#3dcfff 55%,#5cd8ff);background-clip:padding-box}::-webkit-scrollbar-corner{background:transparent}.cover-stage{width:100%;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem 1rem;box-sizing:border-box;perspective:2200px}.cover-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem}.album-cover-book{position:relative;width:min(420px,82vw);aspect-ratio:3 / 4;border-radius:14px;cursor:pointer;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.25,.46,.45,.94),opacity .5s ease}.album-cover-book.front-cover{transform-origin:left center}.album-cover-book.front-cover.is-opening{transform:rotateY(-118deg);opacity:0}.album-cover-book.back-cover{transform-origin:right center}.album-cover-book.back-cover.is-closing{transform:rotateY(105deg);opacity:0}.cover-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:2.25rem 1.75rem;box-sizing:border-box;border-radius:14px;background:linear-gradient(145deg,#5cd8ff,#3dcfff 45%,#f7e96b);border:1px solid rgba(0,122,168,.35);box-shadow:0 22px 50px #14667d59,inset 0 1px #ffffffb3;overflow:hidden}.cover-face:before{content:"";position:absolute;top:0;bottom:0;width:20px;background:linear-gradient(to right,#00000038,#ffffff47 55%,#00000024)}.front-cover .cover-face:before{left:0}.back-cover .cover-face:before{right:0}.cover-thumbnail{position:relative;width:78%;aspect-ratio:1 / 1;border-radius:10px;overflow:hidden;background:#ffffffd9;border:6px solid #fff;box-shadow:0 12px 26px #14667d59}.cover-thumbnail img{display:block;width:100%;height:100%;object-fit:cover}.cover-thumbnail-empty{display:flex;align-items:center;justify-content:center;height:100%;font-size:2.5rem;opacity:.5}.cover-title{margin:0;text-align:center;font-family:Inter,sans-serif;font-size:1.6rem;font-weight:800;letter-spacing:-.01em;color:#fff;text-shadow:0 2px 6px rgba(11,105,145,.5);word-break:break-word}.cover-meta,.cover-hint{margin:0;text-align:center;font-family:Inter,sans-serif;font-size:.8rem;color:#fffffff2;text-shadow:0 1px 4px rgba(11,105,145,.45)}.cover-hint{font-weight:600}.cover-change-thumb{padding:.35rem .7rem;border-radius:999px;border:1px solid rgba(0,122,168,.4);background:#ffffffe6;color:#14667d;font-family:Inter,sans-serif;font-size:.7rem;font-weight:600;cursor:pointer;box-shadow:0 3px 10px #14667d47}.cover-change-thumb:hover{background:#fff}.cover-picker-overlay{position:fixed;inset:0;z-index:1500;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(135deg,#f0f8fff0,#e6f3fff0);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.cover-picker{width:min(720px,100%);max-height:80vh;overflow-y:auto;padding:1.5rem;box-sizing:border-box;border-radius:16px;background:#fffffff5;border:1px solid rgba(176,196,222,.45);box-shadow:0 20px 45px #87ceeb59}.cover-picker-title{margin:0 0 1rem;font-family:Inter,sans-serif;font-size:1.05rem;font-weight:700;color:#23458b}.cover-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.75rem}.cover-picker-item{position:relative;padding:0;aspect-ratio:1 / 1;border-radius:10px;overflow:hidden;border:3px solid transparent;background:none;cursor:pointer}.cover-picker-item img{display:block;width:100%;height:100%;object-fit:cover}.cover-picker-item.is-selected{border-color:#00bfff;box-shadow:0 0 0 3px #00bfff40}.cover-picker-actions{margin-top:1.25rem;display:flex;justify-content:flex-end}.album-book .cover-stage{flex:1;min-height:0}.cover-back-to-upload{padding:.35rem .7rem;border-radius:999px;border:1px solid rgba(0,122,168,.4);background:#ffffffe6;color:#14667d;font-family:Inter,sans-serif;font-size:.7rem;font-weight:600;cursor:pointer;box-shadow:0 3px 10px #14667d47}.cover-back-to-upload:hover{background:#fff}
