/* The gallery layer only changes presentation. Printable artwork stays canonical. */
:root{--gallery-paper:#fbfaf7;--gallery-shadow:#263c2e;--gallery-edge:#e1dfd5;--gallery-ease:cubic-bezier(.22,.75,.25,1)}
body{background:radial-gradient(ellipse at 95% 0%,#edf1e8 0,transparent 44%),var(--gallery-paper);background-attachment:scroll}
.topbar{background:#fbfaf7ed;border-bottom:1px solid #dedfd5;box-shadow:0 4px 24px #24382b04}
.topbar .brand{text-shadow:0 1px 0 #fff}
.shell{position:relative}
button.primary,.button.primary{background:linear-gradient(145deg,#315b48,#183d2d);border-color:#214734;box-shadow:inset 0 1px 0 #ffffff24,0 3px 0 #10291e,0 9px 20px #193c2b18;transition:transform .25s,box-shadow .25s}
button.primary:not(:disabled):active,.button.primary:active{transform:translateY(2px);box-shadow:inset 0 1px 0 #ffffff20,0 1px 0 #10291e,0 3px 9px #193c2b12}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #8b663e;outline-offset:5px}
.store-page .store-hero{gap:clamp(32px,5vw,80px);padding-top:45px;padding-bottom:70px;align-items:center}
.store-page .hero-intro h1{font-size:clamp(3.5rem,5.8vw,5.3rem);text-shadow:0 2px 0 #fff;letter-spacing:-.025em}
.store-page .store-art{background:none;border:0;border-radius:0;padding:0;isolation:isolate}
.store-page .store-art::after{display:none}
.gallery-stage{position:relative;isolation:isolate;perspective:1300px;padding:58px 45px 86px;margin:0 0 12px;border-radius:48% 48% 8px 8px;background:radial-gradient(ellipse at 28% 18%,#fffef9 0,#e8ece3 54%,#d7dfd2 100%);border:1px solid #f8faf2;box-shadow:inset 1px 1px 0 #fff, inset -16px 0 45px #5069510a,0 25px 45px -30px #2a403f4d}
.gallery-architecture{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:-1}
.gallery-arch{position:absolute;inset:32px 24px 70px;border:1px solid #ffffffbf;border-radius:49% 49% 4px 4px;box-shadow:8px 5px 0 #5b715a0a,inset 1px 0 0 #79907715}
.gallery-arch:nth-child(2){inset:54px 43px 90px;opacity:.75}
.gallery-plinth{position:absolute;bottom:-17px;left:9%;width:82%;height:128px;border-radius:50%;background:linear-gradient(180deg,#fffef7,#c4cdbe 60%,#acb9a4);box-shadow:0 -2px 0 #fff,0 18px 35px #2b412c20}
.gallery-plinth::before{content:"";position:absolute;inset:0 0 25px;border-radius:50%;background:radial-gradient(ellipse at 48% 35%,#5061473b 0,transparent 54%),linear-gradient(150deg,#f8f8ef,#d9e1d2);box-shadow:inset 0 1px 2px #fff}
.store-page .gallery-stage .hero-paper-wrap{max-width:280px;transform:rotateY(-13deg) rotateX(4deg) rotateZ(-3deg);transform-style:preserve-3d;transition:transform .7s var(--gallery-ease);box-shadow:5px 5px 0 #957a57,9px 10px 0 #715b41,24px 36px 32px -12px #293c3550}
.store-page .gallery-stage .hero-paper-wrap:not(.is-framed){box-shadow:1px 1px 0 #e6e3d9,3px 4px 0 #d4d2c8,19px 30px 30px -12px #293c3540}
.gallery-stage .hero-paper-wrap::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,#ffffff30,transparent 40%,transparent 72%,#33442e09);transform:translateZ(1px)}
.store-art .art-tools{position:relative;margin-top:12px}.store-art .demo-disclosure{margin-top:16px}
.store-page .store-art .radio-row{background:#e8eade;border:1px solid #dce0d1;box-shadow:inset 0 2px 3px #27392607;border-radius:30px;padding:5px}
.store-page .store-art .radio-row button{border-radius:22px;min-height:44px}
.store-page .store-art .radio-row button[aria-pressed=true]{box-shadow:0 2px 3px #1e30201a,0 5px 12px #1e30200a}
.memory-choices{perspective:1200px;gap:18px}
.memory-choice{position:relative;border-radius:12px!important;background:linear-gradient(140deg,#ffffff,#f7f6f0);border-color:#e5e5da;box-shadow:inset 0 1px 0 #fff,0 4px 0 #e5e6dc,0 12px 22px -12px #30423126;transform-origin:center 85%;transition:transform .5s var(--gallery-ease),box-shadow .5s,background .3s}
.memory-choice[aria-pressed=true]{background:linear-gradient(145deg,#416854,#214733);box-shadow:inset 0 1px 0 #ffffff26,0 5px 0 #183c2a,0 15px 26px -12px #21473355;transform:translateY(-4px)}
.memory-choice strong{position:relative}.memory-number{font-family:Keepsake,Georgia,serif;font-size:1.25rem}
.memory-detail{background:linear-gradient(120deg,#efefe7,#f8f8f1);border:1px solid #e5e5d9;border-radius:12px;box-shadow:inset 0 1px 0 #fff,0 8px 20px -15px #30423140;margin-top:25px}
.walkthrough{border-radius:14px;padding:18px 22px;background:#ffffff70;border:1px solid #e4e6da;box-shadow:0 4px 0 #e9eadf}
.guide-visual{background:linear-gradient(135deg,#f6f7f0,#e8eddf);border-radius:18px;box-shadow:inset 0 1px 0 #fff,4px 5px 0 #dce2d3,16px 25px 40px -22px #28453235}
.guide-mini-paper{box-shadow:2px 3px 0 #d8d7ce,7px 12px 15px #2335291a;transform:perspective(850px) rotateY(-7deg) rotateX(3deg)}
.gift-section{position:relative;isolation:isolate;border:1px solid #ffffff26;border-radius:20px;background:radial-gradient(ellipse at 8% 0%,#4a745d,transparent 65%),linear-gradient(120deg,#284d3b,#163828);box-shadow:inset 0 1px 0 #ffffff30,0 7px 0 #123023,0 25px 45px -20px #183c2b50}
.gift-section::before{content:"";position:absolute;inset:14px;border:1px solid #ffffff16;border-radius:12px;pointer-events:none;z-index:-1}
.gift-section .gift-intro h2,.gift-section .gift-intro h2 em{color:#f6f3e9;text-shadow:0 2px 2px #10291e40}
.gift-section .included{color:#f0f3e9}.gift-section h3{color:#f1f2e8}
.gift-section .gift-intro p{color:#f0f3e9}
.gift-section .button{box-shadow:0 3px 0 #c9d2bf,0 8px 18px #10291e40}
.recording-promise,.story-image{position:relative;perspective:1200px}
.recording-promise img,.story-image img{border:9px solid #fffdf5;border-radius:4px;box-shadow:3px 4px 0 #d6d2c5,14px 25px 34px -15px #3b493b3b;transform:perspective(1200px) rotateY(5deg) rotateZ(-1deg);transition:transform .65s var(--gallery-ease)}
.home-faq details{background:#ffffff70;padding:14px 18px;margin-top:9px;border:1px solid #e4e5da;border-radius:9px;box-shadow:0 3px 0 #e9eadf}
.home-faq details[open]{background:#fffdf8;box-shadow:0 4px 0 #e1e4d6,0 10px 25px -18px #30423140}
.closing-invitation,.about-purpose{position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 0,#fffefa,#e6ecdf);border:1px solid #f9faf3;border-radius:24px;box-shadow:inset 0 1px 0 #fff,0 5px 0 #d9e0d1,0 25px 45px -30px #23473250}
.closing-invitation::before,.about-purpose::before{content:"";position:absolute;inset:20px;border:1px solid #cbd5c366;border-radius:14px;z-index:-1;pointer-events:none}
.newsletter-signup{border-radius:14px;background:linear-gradient(130deg,#fffefa,#eeeee4);box-shadow:inset 0 1px 0 #fff,0 4px 0 #e1e3d6}
.site-footer{border-top:1px solid #dfe3d7}
.creator-page .preview{background:radial-gradient(ellipse at 35% 10%,#fffef9,#e3e9db);border:1px solid #fffdf6;border-radius:20px;box-shadow:inset 1px 1px 0 #fff,4px 5px 0 #d2dbc8,15px 25px 40px -25px #1f432e50;padding:26px 30px}
.creator-page .preview .paper{border:1px solid #e2dfd5;box-shadow:2px 3px 0 #e5e1d8,5px 7px 0 #cbcdbf,15px 22px 23px -10px #293c3530;transform:perspective(1200px) rotateY(-5deg) rotateX(2deg);transition:transform .65s var(--gallery-ease)}
.creator-page .preview:hover .paper,.creator-page .preview:focus-within .paper{transform:perspective(1200px) rotateY(0) rotateX(0)}
.creator-page .upload{background:linear-gradient(145deg,#fffefb,#eef1e6);border-color:#a5b496;border-radius:14px;box-shadow:inset 0 1px 0 #fff,0 4px 0 #e4e7da}
.creator-page .steps{background:#fffffcba;border:1px solid #e6e8df;border-radius:40px;box-shadow:0 3px 0 #e8ebdf;padding:14px 22px}
.cart-summary{background:linear-gradient(130deg,#fffef9,#e9eedf);border:1px solid #dce2d3;border-radius:18px;box-shadow:inset 0 1px 0 white,4px 5px 0 #dce2d3,15px 25px 35px -22px #28453235}
.cart-art{box-shadow:2px 3px 0 #d4d1c6,7px 12px 17px #263c2e1a;transform:perspective(700px) rotateY(-8deg)}
.about-page .founder-story{background:linear-gradient(140deg,#f8f8f0,#e5eadb);border:1px solid #e0e4d5;border-radius:18px;box-shadow:0 5px 0 #d7decf,0 24px 45px -30px #23473240}
body:not(.store-page):not(.about-page) .editorial{background:linear-gradient(160deg,#fffefa,#f5f5ed);border:1px solid #e3e6da;border-radius:14px;margin-top:36px;margin-bottom:36px;box-shadow:4px 5px 0 #e4e7db,15px 25px 40px -26px #2845322a}
.gift-experience{background:radial-gradient(ellipse at 50% 0%,#fffdf5,#e8edde 65%,#d7dfce);min-height:100svh}
.gift-experience #opening{position:relative;isolation:isolate;padding:48px 30px;border:1px solid #fffdf6;background:linear-gradient(135deg,#fffdf8,#f0f0e3);border-radius:8px;box-shadow:3px 4px 0 #dedccb,7px 8px 0 #efeee2,9px 11px 0 #cfD2bf,0 35px 65px -30px #293c3555}
.gift-experience #opening::before{content:"";position:absolute;inset:12px;border:1px solid #d4d8c1;border-radius:3px;pointer-events:none;z-index:-1}
.gift-experience .gift-seal{background:radial-gradient(circle at 35% 25%,#517b62,#224b34 75%);color:#f1edda;border-color:#47664b;box-shadow:inset 0 0 0 5px #416448,inset 0 0 0 6px #ffffff29,2px 4px 0 #143922,0 9px 15px #28452e25;text-shadow:0 1px 1px #0005}
.gift-experience .gift-frame{transform:perspective(1400px) rotateY(-9deg) rotateX(2deg);transform-style:preserve-3d;box-shadow:4px 4px 0 #816c4d,8px 8px 0 #6d583e,22px 35px 35px -13px #293c3545;transition:transform .7s var(--gallery-ease)}
.gift-experience .gift-frame:hover{transform:perspective(1400px) rotateY(0deg) rotateX(0deg)}
.gift-experience #gift audio{border-radius:30px;box-shadow:0 4px 0 #cbd4c1,0 12px 25px -12px #24433030}
.gift-experience #gift .gift-message{margin-top:42px}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .store-page .store-art.is-pointer-active .gallery-stage .hero-paper-wrap{transform:rotateY(calc(-8deg + var(--tilt-y,0deg) + var(--tilt-y,0deg))) rotateX(calc(3deg + var(--tilt-x,0deg) + var(--tilt-x,0deg))) rotateZ(-1deg);transition-duration:180ms}
 .memory-choice:not(:disabled):hover{transform:perspective(1000px) rotateX(5deg) translateY(-8px);box-shadow:inset 0 1px 0 #ffffff50,0 5px 0 #cfd8c8,0 24px 28px -17px #29472f45}
 .memory-choice[aria-pressed=true]:hover{box-shadow:inset 0 1px 0 #ffffff26,0 5px 0 #183c2a,0 24px 28px -17px #29472f55}
 .recording-promise:hover img,.story-image:hover img{transform:perspective(1200px) rotateY(0deg) rotateZ(0deg)}
 .depth-enter{animation:gallery-arrive .7s var(--gallery-ease) both}
}
@keyframes gallery-arrive{from{opacity:.78;transform:perspective(1400px) translateY(22px) rotateX(4deg)}to{opacity:1;transform:none}}
@media(max-width:760px){
 .store-page .store-hero{padding-top:28px;gap:30px;padding-bottom:50px}.store-page .hero-intro h1{font-size:clamp(3.2rem,10vw,4.6rem)}
 .gallery-stage{padding:44px 46px 72px;margin-inline:auto;max-width:440px}.store-page .gallery-stage .hero-paper-wrap{max-width:225px;transform:perspective(1200px) rotateY(-9deg) rotateZ(-2deg)}
 .gallery-plinth{height:105px;bottom:-18px}.gallery-arch{inset:23px 20px 56px}.gallery-arch:nth-child(2){inset:43px 38px 73px}
 .store-page .store-art{padding:0}.memory-choices{gap:16px 12px}.memory-choice{padding:18px 14px}.memory-choice strong{font-size:1.55rem}
 .gift-section{border-radius:16px;gap:28px}.gift-section::before{inset:9px}.walkthrough{padding:16px}.closing-invitation{padding:45px 22px}
 .creator-page .preview{padding:20px;border-radius:14px}.creator-page .preview .paper{transform:none}.creator-page .steps{padding:12px 14px}
 .gift-experience #opening{padding:38px 20px}.gift-experience .gift-frame{max-width:285px;transform:perspective(1200px) rotateY(-5deg)}
 .story-image img,.recording-promise img{border-width:6px;transform:none}.gift-experience .reveal-shell{padding-inline:24px}
 body:not(.store-page):not(.about-page) .editorial{margin:24px 18px;width:auto;padding:28px 22px}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important}
 .depth-enter{animation:none!important}
 .store-page .gallery-stage .hero-paper-wrap,.creator-page .preview .paper,.gift-experience .gift-frame,.guide-mini-paper,.cart-art,.memory-choice,.recording-promise img,.story-image img{transform:none!important;transition:none!important}
}
.gift-experience:has(#motion-off:checked) .gift-frame{transform:none!important;transition:none!important}
@media print{body{background:white}.gallery-architecture{display:none}.paper,.gift-frame{transform:none!important;box-shadow:none!important}.depth-enter{animation:none!important}}
