/* Scoped to the template gallery. Home and camera retain their existing styles. */
body.templates-gallery-body {margin:0;min-height:100svh;color:#4b101b;background:#f2e7d5 url('../assets/images/templates-bg.png') center/cover no-repeat fixed;font-family:'DM Sans',sans-serif;}
.templates-gallery-body .topbar {background:linear-gradient(110deg,#350810ef,#54252aeb)!important;}
.keepsake-page{max-width:1760px;margin:0 auto;min-height:calc(100svh - 72px);padding:clamp(18px,3vh,36px) clamp(24px,5.8vw,100px) 28px;display:flex;flex-direction:column;justify-content:center;gap:clamp(16px,2.8vh,30px);box-sizing:border-box;}
.keepsake-heading{position:relative;text-align:center;flex:none;}
.keepsake-heading h1{font-family:'Bodoni Moda',Georgia,serif;font-weight:500;font-size:clamp(32px,4vw,64px);line-height:1.08;letter-spacing:-.035em;margin:0 0 10px;}
.keepsake-heading p{font:italic clamp(15px,1.7vw,24px)/1.3 'Bodoni Moda',Georgia,serif;margin:0;}
.keepsake-spec{display:block;font-size:11px;text-align:right;margin-bottom:8px;}
.keepsake-panel{padding:clamp(18px,2vw,30px) clamp(14px,1.6vw,26px);border:1px solid #b79b6b70;outline:1px solid #fff8;outline-offset:-7px;border-radius:9px;background:#faf5e5b8;box-shadow:0 8px 28px #54331d13;}
.keepsake-gallery{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:clamp(10px,1.35vw,24px);align-items:start;}
.keepsake-choice{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:0;padding:0;border:0;background:none;color:inherit;cursor:pointer;font:inherit;}
.keepsake-art{position:relative;display:block;width:100%;max-width:calc(clamp(225px,43vh,460px)*.32);aspect-ratio:8/25;box-shadow:0 4px 12px #37261925;border-radius:0;transition:transform .15s,outline-color .15s;outline:2px solid transparent;outline-offset:5px;}
.keepsake-art img{display:block;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .15s;}
.keepsake-art img[data-ready=true]{opacity:1;}
.keepsake-choice[aria-pressed=true] .keepsake-art{outline-color:#641728;}
.keepsake-choice:hover .keepsake-art{transform:translateY(-3px);}
.keepsake-choice:focus-visible{outline:2px solid #641728;outline-offset:8px;border-radius:2px;}
.keepsake-check{display:none;position:absolute;right:-10px;top:-10px;width:25px;height:25px;place-items:center;background:#641728;color:#fff;border:2px solid #fff5df;border-radius:50%;}
.keepsake-choice[aria-pressed=true] .keepsake-check{display:grid;}
.keepsake-name{font-size:clamp(10px,.88vw,13px);line-height:1.35;font-weight:600;min-height:2.7em;text-align:center;}
.keepsake-next{text-align:center;flex:none;}
.keepsake-next p{font:italic 14px/1.4 'Bodoni Moda',Georgia,serif;margin:0 0 14px;}
.keepsake-start{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:13px 30px;background:#4b101b;color:#fff7e8;text-decoration:none;border:1px solid #ad8a5e80;border-radius:6px;box-shadow:0 4px 10px #41112016;font-size:14px;font-weight:600;}
.keepsake-start:hover{background:#641728;}.keepsake-start:focus-visible{outline:3px solid #ac8c58;outline-offset:3px;}
.keepsake-status{display:block;min-height:16px;font-size:11px;margin-top:8px;}
@media(min-width:1050px) and (max-height:820px){.keepsake-page{gap:16px;padding-top:16px;padding-bottom:20px;}.keepsake-heading h1{font-size:44px}.keepsake-heading p{font-size:18px}.keepsake-art{max-width:calc(40vh*.32)}.keepsake-panel{padding-top:20px;padding-bottom:14px}.keepsake-next p{margin-bottom:10px}}
@media(max-width:1049px){.keepsake-page{padding:28px 7vw 40px;justify-content:flex-start}.keepsake-gallery{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px 20px}.keepsake-art{max-width:130px}.keepsake-name{font-size:12px}.keepsake-spec{text-align:center}}
@media(max-width:600px){.keepsake-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 24px}.keepsake-page{padding:24px 7vw 36px}.keepsake-art{max-width:130px}.keepsake-heading h1{font-size:36px}.keepsake-next p{font-size:14px}.keepsake-panel{padding:24px}.keepsake-start{min-height:44px}}
@media(prefers-reduced-motion:reduce){.keepsake-art{transition:none}.keepsake-choice:hover .keepsake-art{transform:none}}
