@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.photo-aspect-ratio-container{position:relative;width:100%;height:100%}.photo-container{position:relative;overflow:hidden;background-color:#1a1a1a;border-radius:8px;width:100%;box-sizing:border-box;max-width:100%}.photo-image{display:block;width:100%;height:auto;object-fit:contain;transition:all .3s ease;animation:fadeIn .5s ease-in-out;border-radius:4px}.loading-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.2);border-top:3px solid white;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 640px){.photo-container{border-radius:4px;margin:0;width:100%}}img.photo-image{max-width:100%;object-fit:contain}.photo-image-wrapper{box-sizing:border-box;width:100%;overflow:hidden;display:flex;justify-content:center}.photo-container button:hover .photo-image{transform:scale(1.01)}dialog{margin:0;padding:0;background:transparent;border:none;width:100%;height:100%;max-width:100%;max-height:100%;overflow:hidden;animation:dialogFadeIn .15s ease}dialog::backdrop{background-color:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@keyframes dialogFadeIn{0%{opacity:0;transform:scale(1)}to{opacity:1;transform:scale(1.05)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{opacity:0;animation:fadeInUp .8s cubic-bezier(.17,.67,.38,1) forwards}.animate-fade-in{opacity:0;animation:fadeIn .8s ease forwards}.animate-scale-in{opacity:0;animation:scaleIn .8s cubic-bezier(0,0,.2,1) forwards}.animate-fade-out{animation:fadeOut .5s ease forwards}.animate-scale-out{animation:scaleOut .5s cubic-bezier(.4,0,1,1) forwards}@keyframes pageEnter{0%{opacity:0;transform:translateY(15px) scale(.98);filter:blur(8px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes pageExit{0%{opacity:1;transform:scale(1);filter:blur(0)}to{opacity:0;transform:scale(1.02);filter:blur(8px)}}.page-transition{will-change:opacity,transform,filter;transform-origin:center;isolation:isolate}.page-transition-enter{opacity:0;animation:pageEnter 1s cubic-bezier(.22,1,.36,1) forwards}.page-transition-exit{animation:pageExit .8s cubic-bezier(.22,1,.36,1) forwards}.content-fade{animation:fadeIn 1.1s ease forwards;animation-delay:.15s;opacity:0}.page-transition-enter.fast{animation-duration:1.2s}.page-transition-exit.fast{animation-duration:1s}.page-transition-enter.slow{animation-duration:1.3s}.page-transition-exit.slow{animation-duration:1.15s}
