@font-face{font-family:'Fraunces';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/fraunces-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/fraunces-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/fraunces-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/fraunces-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:500;font-display:swap;src:url(fonts/fraunces-latin-500-italic.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/plus-jakarta-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/plus-jakarta-sans-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/plus-jakarta-sans-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/plus-jakarta-sans-latin-700-normal.woff2) format('woff2')}
:root{--cream:#faf6f0;--ink:#2c2523;--muted:#665a53;--terra:#b9502b;--line:#e7ded4;--purple:#6b21a8}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:14px 'Plus Jakarta Sans',sans-serif}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{border:0;background:none;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #b9502b80;outline-offset:5px}button:hover{filter:brightness(.94)}header{height:90px;border-bottom:1px solid var(--line);padding:0 6%;display:flex;align-items:center;justify-content:space-between}.brand{font:500 27px Fraunces,Georgia,serif;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:10px}.brand-icon{color:var(--terra);font-size:36px}.beta{font:600 9px 'Plus Jakarta Sans',sans-serif;border:1px solid #dbcbbc;padding:5px 7px;border-radius:4px;letter-spacing:1px;margin-left:7px}.profile-link{display:flex;align-items:center;gap:12px;font-size:12px}.avatar{background:#eddbc9;color:#7f5339;border:3px solid white;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-family:Fraunces,serif;font-size:20px}main{max-width:1180px;margin:auto;padding:0 40px}.intro{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;padding:72px 0 75px;min-height:510px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#7a5d49;margin:0 0 22px}h1,h2,h3,p{margin-top:0}h1{font:400 clamp(34px,4.5vw,57px)/1.12 Fraunces,Georgia,serif;letter-spacing:-1.8px;margin-bottom:22px}h1 em{color:#a8583c;font-weight:400}.sub{color:var(--muted);font-size:14px;line-height:1.85}.intro-actions{display:flex;align-items:center;gap:20px;margin-top:28px}.primary{background:var(--terra);color:white;border-radius:9px;padding:14px 22px;font-size:12px;font-weight:600;box-shadow:0 5px 12px #b35d3210}.text-button{font-size:12px;padding:10px 0;font-weight:600}.collage{position:relative;height:355px;margin-left:40px}.paper{background:white;padding:10px 10px 14px;box-shadow:0 12px 35px #55453520;width:215px;position:absolute;border:1px solid #ece7e0}.paper img{width:100%;height:230px;object-fit:cover}.paper span{font:italic 14px Fraunces,Georgia,serif;display:block;text-align:center;padding-top:12px;color:#68554b}.photo-back{transform:rotate(-10deg);left:0;top:12px}.photo-front{transform:rotate(9deg);right:0;top:53px}.little-star{position:absolute;font-size:62px;color:#d19961;top:-10px;right:0;font-weight:400}.handwritten{position:absolute;bottom:-15px;left:15px;font:italic 18px/1.3 Fraunces,Georgia,serif;transform:rotate(-7deg);color:#9b816d}.album-head{display:flex;justify-content:space-between;align-items:center}.album-head .eyebrow{margin-bottom:12px}h2{font:400 30px Fraunces,Georgia,serif;letter-spacing:-.7px}.small-button{border:1px solid #dfd3c5;border-radius:7px;padding:10px 14px;font-size:11px}.year-tabs{display:flex;border-bottom:1px solid var(--line);margin:12px 0 26px;gap:10px;padding-bottom:14px;overflow:auto}.tab{white-space:nowrap;display:flex;align-items:center;gap:14px;padding:11px 22px;border-radius:8px;color:#76665c;text-align:left}.tab strong{display:block;font-size:12px}.tab small{display:block;font-size:10px;margin-top:4px}.tab .count{background:#eae1d7;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;font-size:10px}.tab.active{background:var(--ink);color:#fff}.tab.active .count{background:#ffffff20}.tab.vault{margin-left:auto;color:#76517f}.tab.vault.active{background:#ede4f0}.year-summary{background:#f1e9df;border:1px solid #e8ded2;border-radius:13px;padding:30px 32px;display:flex;justify-content:space-between;align-items:center}.chapter-tag{display:block;font-size:9px;letter-spacing:2px;color:#7a5b42;font-weight:700;margin-bottom:10px}.year-summary h2{margin-bottom:8px;font-size:29px}.year-summary p{font-size:12px;color:var(--muted);margin-bottom:18px}.summary-stats{display:flex;gap:16px;color:#6e5949;font-size:10px}.reel-button{display:flex;align-items:center;gap:14px;background:#fffaf5;border:1px solid #e1d1be;border-radius:10px;padding:15px 18px;text-align:left}.reel-button strong{display:block;font-size:12px}.reel-button small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.play-circle{border-radius:50%;width:36px;height:36px;background:var(--terra);color:white;display:grid;place-items:center;font-size:12px}.collection-heading{display:flex;justify-content:space-between;align-items:center;margin:36px 0 20px}.collection-heading h3{font-size:12px;font-weight:600;margin:0}.collection-heading span{font-size:10px;color:var(--muted)}.memory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}.memory-card{background:#fff;border:1px solid #ede6dd;border-radius:12px;overflow:hidden;box-shadow:0 3px 8px #5e412505}.memory-image{height:245px;position:relative;overflow:hidden;background:#e9dfd3}.memory-image img,.memory-image video{width:100%;height:100%;object-fit:cover;transition:transform .5s}.memory-card:hover .memory-image img{transform:scale(1.025)}.image-button{padding:0;width:100%;height:100%;display:block}.month-pill{position:absolute;left:14px;top:14px;background:#fffffff0;border-radius:30px;padding:6px 10px;font-size:9px;color:#68564b;pointer-events:none}.demo-pill{position:absolute;right:10px;bottom:10px;background:#0006;color:white;padding:4px 7px;font-size:8px;border-radius:4px;pointer-events:none}.card-body{padding:18px}.card-meta{display:flex;justify-content:space-between;align-items:center;color:#82583a;font-size:9px;letter-spacing:1px}.card-meta button{font-size:17px;color:#97877c;padding:0 4px}.card-body h3{font:400 23px Fraunces,Georgia,serif;margin:10px 0}.card-body p{font-size:11px;color:#6b5e55;line-height:1.7;min-height:37px}.voice-control{width:100%;display:flex;align-items:center;gap:10px;background:#faf6f0;border-radius:7px;padding:10px;font-size:10px;color:#935037}.wave{display:flex;align-items:center;gap:3px;height:22px;flex:1}.wave i{display:block;background:#d7ad93;width:3px;border-radius:3px;height:var(--h)}.voice-time{color:#ae8c78;font-size:9px}.add-card{min-height:370px;border:1.5px dashed #d9cbbb;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center}.add-card .plus{font-size:28px;font-weight:400;background:#f1e8dd;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:#a78466;margin-bottom:18px}.add-card h3{font:400 23px Fraunces,Georgia,serif;margin-bottom:10px}.add-card p{font-size:11px;line-height:1.8;color:#72604f;max-width:180px}.closing{text-align:center;padding:65px 0 55px}.closing>span{font-size:35px;color:#b68e69}.closing h2{font-size:26px;margin:14px 0}.closing p{font-size:11px;color:var(--muted)}.closing button{color:#98482c}footer{border-top:1px solid var(--line);padding:26px 0;display:flex;align-items:center;justify-content:space-between;color:#72604f}footer .brand{font-size:20px;color:#6f5b4a}footer p{font-size:10px;margin:0}footer button{font-size:10px}.lock-cover{position:absolute;inset:0;background:#eee5f0ec;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#78528a;gap:12px}.lock-cover b{font-family:Fraunces,serif;font-size:25px}.lock-cover span{font-size:11px}.empty{grid-column:1/-1;text-align:center;padding:50px;color:var(--muted)}dialog{border:1px solid #e8ded2;border-radius:18px;width:min(540px,calc(100% - 28px));max-height:90dvh;padding:28px;color:var(--ink);background:#fffdf9;box-shadow:0 30px 100px #30211740}dialog::backdrop{background:#2c252385;backdrop-filter:blur(5px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-heading h2{font-size:28px;margin:0}.close{font-size:25px;width:35px;height:35px;border-radius:50%;background:#f2eae0}label{display:block;font-size:11px;font-weight:600;margin:16px 0 7px}input:not([type=checkbox]),textarea,select{width:100%;border:1px solid #ded2c6;border-radius:7px;padding:11px;background:#fff;color:var(--ink)}textarea{min-height:85px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.help{font-size:11px;line-height:1.7;color:var(--muted);margin:12px 0}.notice{background:#f6eee5;border-radius:8px;padding:14px;font-size:11px;line-height:1.7;color:#876a55}.modal-photo{width:100%;max-height:280px;object-fit:cover;border-radius:10px}.record-area{text-align:center;padding:15px 0}.record-button{background:var(--terra);color:white;border-radius:50%;width:65px;height:65px;font-size:24px;margin:15px}.record-button.recording{animation:pulse 1s infinite;background:#b43b35}@keyframes pulse{50%{box-shadow:0 0 0 12px #b9502b22}}audio{width:100%;height:36px;margin:12px 0}.danger{color:#ae4838;font-size:11px}.preview-lock{font-size:10px;color:#755682;padding:8px 0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 20px;background:#2c2523;color:#fff;border-radius:9px;font-size:12px;z-index:10;display:none;max-width:90%;text-align:center}#cinema{position:fixed;inset:0;background:#151210;z-index:20;color:white}#cinema[hidden]{display:none}.cinema-top{position:absolute;top:22px;left:25px;right:25px;z-index:2;display:flex;justify-content:space-between;align-items:center}.cinema-top span{font:23px Fraunces,serif}.cinema-top button{font-size:25px}.story-stage{position:absolute;inset:0;overflow:hidden;display:grid;place-items:center}.story-stage img,.story-stage video{width:100%;height:100%;object-fit:contain}.story-stage img{animation:kenburns 12s ease-out forwards}@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.08)}}.story-shade{position:absolute;inset:0;background:linear-gradient(#0007,transparent 30%,transparent 45%,#000c)}.story-caption{position:absolute;bottom:140px;left:10%;right:10%;text-align:center}.story-caption h2{font-size:40px;margin:10px}.story-caption p{font:italic 20px/1.5 Fraunces,serif}.story-caption small{letter-spacing:3px;font-size:10px}.cinema-controls{position:absolute;bottom:35px;left:8%;right:8%;display:flex;flex-direction:column;gap:20px;align-items:center}.story-bars{display:flex;gap:6px;width:100%}.story-bars button{flex:1;height:4px;background:#ffffff45;padding:0}.story-bars button.done{background:#e9ac7c}.story-buttons{display:flex;align-items:center;gap:25px}.story-buttons button{font-size:17px}.story-buttons #pauseStory{border:1px solid #ffffff60;width:45px;height:45px;border-radius:50%}.reel-note{font-size:10px;color:#d1b9a7}.file-preview{font-size:11px;color:#956945;padding-top:8px}.modal-heading .close{flex-shrink:0}.storage-error{background:#fee3db;padding:20px;text-align:center;font-size:12px}
@media(min-width:1300px){.intro{padding-top:80px;padding-bottom:85px}}@media(max-width:900px){main{padding:0 25px}.intro{gap:20px}.collage{margin:0;height:290px}.paper{width:175px}.paper img{height:185px}.photo-front{top:65px}.handwritten{bottom:-22px;font-size:15px}.little-star{font-size:42px}.memory-grid{gap:15px}.memory-image{height:210px}.tab{padding:10px 15px;gap:9px}.year-summary{padding:25px;gap:15px}.reel-button{padding:12px}.reel-button small{max-width:140px;line-height:1.5}.card-body{padding:14px}}
@media(max-width:640px){header{height:72px;padding:0 20px}.brand{font-size:23px;gap:6px}.brand-icon{font-size:31px}.beta{font-size:7px;margin-left:4px;padding:4px}.profile-link{padding:0;gap:5px}.profile-link>span:not(.avatar){display:none}main{padding:0 20px}.intro{grid-template-columns:1fr;padding:40px 0 35px;text-align:center;gap:25px}.eyebrow{font-size:8px;margin-bottom:18px}h1{font-size:41px;letter-spacing:-1.3px}.sub{font-size:12px}.intro-actions{justify-content:center;gap:20px;margin-top:22px}.collage{width:300px;height:300px;margin:0 auto}.photo-back{left:10px;top:10px}.photo-front{right:5px;top:45px}.paper{width:173px}.handwritten{bottom:0;left:10px}.little-star{right:0;top:0}.album-head{align-items:flex-start;gap:15px}.album-head h2{font-size:25px;max-width:240px}.album-head .small-button{font-size:9px;padding:8px;max-width:95px;line-height:1.6}.album-head .eyebrow{font-size:8px;margin-bottom:9px}.year-tabs{gap:4px;margin-top:2px;padding-bottom:12px}.tab{padding:10px 12px;gap:10px}.tab strong{font-size:11px}.tab small{font-size:9px}.tab .count{width:19px;height:19px;font-size:9px}.year-summary{display:block;padding:24px}.year-summary h2{font-size:29px}.year-summary p{font-size:11px;line-height:1.7}.reel-button{margin-top:23px;width:100%;justify-content:space-between}.reel-button small{max-width:none}.reel-button>span:nth-child(2){margin-right:auto}.memory-grid{grid-template-columns:1fr;gap:22px}.memory-image{height:300px}.card-body{padding:20px}.card-body p{min-height:0;font-size:12px}.card-body h3{font-size:26px}.voice-control{padding:12px}.add-card{min-height:230px}.closing{padding:45px 5px}.closing h2{font-size:25px;line-height:1.3}.closing p{line-height:1.7}.collection-heading{margin-top:28px}.collection-heading h3{font-size:11px}footer{gap:10px;flex-wrap:wrap}footer .brand{font-size:18px}footer p{display:none}dialog{padding:23px}.story-caption h2{font-size:32px}.story-caption p{font-size:18px}.form-row{gap:10px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

[hidden]{display:none!important}

/* Keep local-only storage limitations visible before families add media. */
.privacy-reminder{margin:0 0 28px;padding:15px 18px;border:1px solid #e0cbb6;border-radius:10px;background:#fffaf4;color:#584b41;font-size:12px;line-height:1.7}
.privacy-reminder strong{color:#49372b}
.privacy-reminder span{display:block}
@media(max-width:640px){.privacy-reminder{font-size:11px;padding:13px 14px}}
