@keyframes slideInBounce{0%{opacity:0;transform:translateY(-30px) scale(.8)}60%{opacity:.8;transform:translateY(5px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideOutFade{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:.3;transform:translateY(-15px) scale(.95)}to{opacity:0;transform:translateY(-30px) scale(.8)}}@keyframes expandLine{0%{transform:scaleX(0);opacity:0}50%{opacity:.5}to{transform:scaleX(1);opacity:1}}@keyframes collapseLine{0%{transform:scaleX(1);opacity:1}50%{opacity:.5}to{transform:scaleX(0);opacity:0}}@keyframes moveUpSmooth{0%{transform:translateY(0)}50%{transform:translateY(-30px) scale(1.1)}to{transform:translateY(-25px) scale(1)}}@keyframes moveDownSmooth{0%{transform:translateY(-25px)}50%{transform:translateY(5px) scale(1.05)}to{transform:translateY(0) scale(1)}}@keyframes rotateSwitchButton{0%{transform:rotate(0deg) scale(1)}25%{transform:rotate(90deg) scale(1.1)}50%{transform:rotate(180deg) scale(1.15)}75%{transform:rotate(270deg) scale(1.1)}to{transform:rotate(1turn) scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.5)}50%{opacity:.7;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(1.05)}to{opacity:0;transform:scale(.5)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes menu-dropdown-enter{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes menu-dropdown-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(.96)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes draw{50%{fill:rgba(0,0,0,0)}to{fill:#02967b;stroke-dashoffset:0}}@keyframes draw-back{0%{fill:#02967b;stroke-dashoffset:0}10%{fill:rgba(0,0,0,0)}to{fill:none;stroke-dashoffset:2000}}@keyframes hide{to{display:none}}@keyframes fadeInOut{0%{opacity:0;transform:translateY(4px)}20%{opacity:1;transform:translateY(0)}80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes pulse{0%{opacity:.8;transform:scale(1)}25%{opacity:1;transform:scale(1.05)}75%{opacity:.8;transform:scale(.95)}to{opacity:.8;transform:scale(1)}}@keyframes flyAway{0%{opacity:0;offset-distance:0;transform:scale(.8) rotate(0deg)}10%{opacity:1;transform:scale(1) rotate(-10deg)}to{opacity:0;offset-distance:100%;transform:scale(.7) rotate(10deg)}}.photo-upload-container{width:100%;display:flex;flex-direction:column;gap:16px}.photo-upload-label{font-size:16px;font-weight:500;color:#6b7280;line-height:1.5}@media(max-width:768px){.photo-upload-label{font-size:14px}}.photo-upload-content{display:flex;gap:16px;width:100%}@media(max-width:768px){.photo-upload-content{flex-direction:column}}.photos-preview-container{flex:1 1;min-width:0}@media(max-width:768px){.photos-preview-container{width:100%}}.photos-preview-scroll{display:flex;gap:12px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#e5e7eb #f3f4f6;padding-bottom:8px}.photos-preview-scroll::-webkit-scrollbar{height:6px}.photos-preview-scroll::-webkit-scrollbar-track{background:#f3f4f6;border-radius:3px}.photos-preview-scroll::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:3px}.photos-preview-scroll::-webkit-scrollbar-thumb:hover{background:#d1d5db}.photo-preview-item{position:relative;flex-shrink:0;width:120px;height:120px;border-radius:16px;overflow:hidden;background:#f3f4f6;box-shadow:0 1px 3px rgba(0,0,0,.1)}.photo-preview-item img{width:100%;height:100%;object-fit:cover;display:block}.photo-preview-item:hover .remove-photo-btn{opacity:1}@media(max-width:768px){.photo-preview-item{width:120px;height:120px;border-radius:12px}}.remove-photo-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.6);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:all .2s ease}.remove-photo-btn:hover{background:rgba(0,0,0,.8);transform:scale(1.1)}.remove-photo-btn svg{width:16px;height:16px}@media(max-width:768px){.remove-photo-btn{opacity:1;width:24px;height:24px}}.upload-button{flex-shrink:0;width:120px;height:120px;border:2px solid #e5e7eb;border-radius:16px;background:#f9fafb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;cursor:pointer;transition:all .3s ease}.upload-button:hover{border-color:#10b981;background:#f0fdf4}.upload-button:hover .upload-icon{color:#10b981}.upload-button:active{transform:scale(.98)}.upload-icon{width:24px;height:24px;color:#9ca3af;transition:color .3s ease;display:flex;align-items:center;justify-content:center}.upload-icon svg{width:100%;height:100%}@media(max-width:768px){.upload-icon{width:32px;height:32px}}.upload-text{font-size:12px;color:#6b7280;line-height:1.5}@media(max-width:768px){.upload-text{font-size:16px}}.hidden-file-input{display:none}@keyframes photoAppear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.photo-preview-item{animation:photoAppear .3s ease-out}