*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{background-color:#000;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.app-root{width:100vw;height:100vh;position:relative;overflow:hidden}.background-layer{z-index:0;background-color:#000;position:absolute;inset:0}.splash-layer{z-index:5;animation:4s ease-in-out forwards splashFadeInOut;position:absolute;inset:0;overflow:hidden}.splash-image{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.gallery-layer{z-index:3;position:absolute;inset:0;overflow:hidden}.gallery-image-wrapper{justify-content:center;align-items:center;margin:4vh 4vw;display:flex;position:absolute;inset:0}.gallery-image{object-fit:contain;background-color:#000;border:2px solid #ffcdf0f2;border-radius:18px;width:auto;max-width:100%;height:auto;max-height:100%;box-shadow:0 0 10px #ffa0e6cc,0 0 25px #ff78d299,0 0 40px #ff64c866}.hearts-layer{z-index:8;pointer-events:none;position:absolute;inset:0;overflow:hidden}.heart{color:#ffb9e6fa;text-shadow:0 0 4px #ff96dce6,0 0 10px #ff78d2d9;animation-name:floatHeart;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;bottom:-10vh}.overlay-text{z-index:10;padding:env(safe-area-inset-bottom,16px)16px 16px;pointer-events:none;color:#ffffffb3;text-align:center;justify-content:center;align-items:flex-end;font-size:12px;display:flex;position:absolute;inset:0}@keyframes splashFadeInOut{0%{opacity:0;transform:scale(1.02)}20%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.99)}}@keyframes floatHeart{0%{opacity:0;transform:translate(0,0)scale(.85)}10%{opacity:1}50%{transform:translate(-12px,-50vh)scale(1.05)}to{opacity:0;transform:translate(12px,-110vh)scale(1.12)}}@keyframes imgFadeBase{0%{opacity:0;transform:scale(1.01)}15%{opacity:1;transform:scale(1)}85%{opacity:1}to{opacity:0;transform:scale(1.01)}}.gallery-image-wrapper.effect-fade{animation:5s ease-in-out forwards imgFadeBase}.gallery-image-wrapper.effect-zoom{animation:5s ease-in-out forwards imgFadeBase,5s ease-in-out forwards imgZoom}@keyframes imgZoom{0%{transform:scale(1.01)}to{transform:scale(1.08)}}.gallery-image-wrapper.effect-slide{animation:5s ease-in-out forwards imgFadeBase,5s ease-in-out forwards imgSlide}@keyframes imgSlide{0%{transform:translate(-3%,3%)}to{transform:translate(3%,-3%)}}.gallery-image-wrapper.effect-rotate{animation:5s ease-in-out forwards imgFadeBase,5s ease-in-out forwards imgRotate}@keyframes imgRotate{0%{transform:scale(1.01)rotate(-.7deg)}to{transform:scale(1.01)rotate(.7deg)}}.gallery-image-wrapper.effect-float{animation:5s ease-in-out forwards imgFadeBase,5s ease-in-out forwards imgFloat}@keyframes imgFloat{0%{transform:translateY(8px)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}.gallery-image-wrapper.effect-blur{animation:5s ease-in-out forwards imgFadeBase,5s ease-in-out forwards imgBlurPulse}@keyframes imgBlurPulse{0%{filter:blur(3px)}50%{filter:blur()}to{filter:blur(1px)}}.gallery-image-wrapper.effect-softZoom{animation:6s ease-in-out forwards imgFadeBase,6s ease-in-out forwards imgSoftZoom}@keyframes imgSoftZoom{0%{transform:scale(1)rotate(-.4deg)}to{transform:scale(1.08)rotate(.4deg)}}.gallery-image-wrapper.effect-panLeft{animation:7s ease-in-out forwards imgFadeBase,7s linear forwards imgPanLeft}@keyframes imgPanLeft{0%{transform:translate(4%)}to{transform:translate(-4%)}}.gallery-image-wrapper.effect-panRight{animation:7s ease-in-out forwards imgFadeBase,7s linear forwards imgPanRight}@keyframes imgPanRight{0%{transform:translate(-4%)}to{transform:translate(4%)}}.gallery-image-wrapper.effect-panUp{animation:7s ease-in-out forwards imgFadeBase,7s linear forwards imgPanUp}@keyframes imgPanUp{0%{transform:translateY(4%)}to{transform:translateY(-4%)}}.gallery-image-wrapper.effect-panDown{animation:7s ease-in-out forwards imgFadeBase,7s linear forwards imgPanDown}@keyframes imgPanDown{0%{transform:translateY(-4%)}to{transform:translateY(4%)}}.gallery-image-wrapper.effect-tilt{animation:6s ease-in-out forwards imgFadeBase,6s ease-in-out forwards imgTilt}@keyframes imgTilt{0%{transform:perspective(800px)rotateX(3deg)rotateY(-3deg)}to{transform:perspective(800px)rotateX(-2deg)rotateY(2deg)}}.gallery-image-wrapper.effect-glow{animation:6s ease-in-out forwards imgFadeBase,6s ease-in-out forwards imgGlow}@keyframes imgGlow{0%{filter:drop-shadow(0 0 8px #ffa0e680)}50%{filter:drop-shadow(0 0 16px #ffbef0e6)}to{filter:drop-shadow(0 0 10px #ff96dc99)}}.gallery-image-wrapper.effect-vignette{animation:5s ease-in-out forwards imgFadeBase}.gallery-image-wrapper.effect-vignette:after{content:"";pointer-events:none;opacity:0;background:radial-gradient(circle,#0000 40%,#000000a6 100%);animation:5s ease-in-out forwards vignetteFade;position:absolute;inset:0}@keyframes vignetteFade{0%{opacity:0}40%{opacity:1}to{opacity:.95}}.gallery-image-wrapper.effect-dreamy{animation:6s ease-in-out forwards imgFadeBase,6s ease-in-out forwards imgDreamy}@keyframes imgDreamy{0%{filter:saturate(.9)hue-rotate(-10deg)brightness(1.02)blur(1.5px)}50%{filter:saturate(1.25)hue-rotate(12deg)brightness(1.06)blur(.5px)}to{filter:saturate(1.1)hue-rotate()brightness(1.03)blur(1px)}}.gallery-image-wrapper.effect-zoomOut{animation:6s ease-in-out forwards imgFadeBase,6s ease-in-out forwards imgZoomOut}@keyframes imgZoomOut{0%{transform:scale(1.15)}to{transform:scale(1)}}.gallery-image-wrapper.effect-flipX{animation:6s ease-in-out forwards imgFadeBase,6s ease-in-out forwards imgFlipX}@keyframes imgFlipX{0%{transform:perspective(900px)rotateY(12deg)}50%{transform:perspective(900px)rotateY(-6deg)}to{transform:perspective(900px)rotateY(0)}}.gallery-image-wrapper.effect-flipY{animation:6s ease-in-out forwards imgFadeBase,6s ease-in-out forwards imgFlipY}@keyframes imgFlipY{0%{transform:perspective(900px)rotateX(-10deg)}50%{transform:perspective(900px)rotateX(6deg)}to{transform:perspective(900px)rotateX(0)}}.gallery-image-wrapper.effect-softShake{animation:5s ease-in-out forwards imgFadeBase,5s ease-in-out forwards imgSoftShake}@keyframes imgSoftShake{0%{transform:translate(0,0)}20%{transform:translate(2px,-2px)}40%{transform:translate(-2px,1px)}60%{transform:translate(1px,2px)}80%{transform:translate(-1px,-1px)}to{transform:translate(0,0)}}.gallery-image-wrapper.effect-rotateScale{animation:6s ease-in-out forwards imgFadeBase,6s ease-in-out forwards imgRotateScale}@keyframes imgRotateScale{0%{transform:scale(.98)rotate(-1.2deg)}50%{transform:scale(1.04)rotate(.6deg)}to{transform:scale(1.01)rotate(0)}}.gallery-image-wrapper.effect-lightSweep{animation:6s ease-in-out forwards imgFadeBase;position:relative;overflow:hidden}.gallery-image-wrapper.effect-lightSweep:before{content:"";opacity:0;pointer-events:none;background:linear-gradient(120deg,#fff0 0%,#fffc 50%,#fff0 100%);width:40%;height:140%;animation:6s ease-in-out forwards sweepLight;position:absolute;top:-20%;left:-40%;transform:translate(0)}@keyframes sweepLight{0%{opacity:0;transform:translate(0)}20%{opacity:0}35%{opacity:.9}70%{opacity:.4;transform:translate(260%)}to{opacity:0;transform:translate(300%)}}@media (max-width:768px){.overlay-text{padding-bottom:env(safe-area-inset-bottom,10px);font-size:10px}}
