:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}#root{width:100%;margin:0 auto;text-align:center}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}::selection{background:#667eea4d;color:#2d3748}*:focus{outline:2px solid #667eea;outline-offset:2px}html{scroll-behavior:smooth}img{max-width:100%;height:auto}a{color:#667eea;text-decoration:none;transition:color .3s ease}a:hover{color:#5a67d8}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease-out}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 10px 30px #00000026}*{margin:0;padding:0;box-sizing:border-box}#root{height:100%!important;min-height:100vh!important}html,body{height:100%!important;margin:0!important;padding:0!important}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;background:linear-gradient(135deg,#667eea,#764ba2)!important;min-height:100vh!important;height:100%!important}.app{min-height:100vh!important;height:100%!important;display:flex!important;flex-direction:column!important;margin:0!important;padding:0!important;box-sizing:border-box!important}.app-header{background:#ffffffe6!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;padding:1.5rem 2rem!important;border-bottom:1px solid rgba(0,0,0,.06)!important;display:flex!important;justify-content:space-between!important;align-items:center!important;margin:0!important;box-sizing:border-box!important}.header-left{text-align:left!important}.app-header h1{font-size:2rem!important;color:#1a202c!important;margin-bottom:.25rem!important;margin-top:0!important;font-weight:600!important;letter-spacing:-.025em!important;line-height:1.2!important}.app-header p{font-size:1rem!important;color:#64748b!important;font-weight:400!important;opacity:.8!important;margin:0!important}.navigation{display:flex;gap:.75rem}.nav-link{padding:.5rem 1.25rem;background:transparent;color:#64748b;text-decoration:none;border-radius:6px;font-weight:500;font-size:.9rem;transition:all .2s ease;border:1px solid transparent}.nav-link:hover{background:#667eea14;color:#667eea;border-color:#667eea33}.nav-link.active{background:#667eea1a;color:#667eea;border-color:#667eea4d}.header-buttons{display:flex!important;gap:.75rem!important}.header-btn{padding:.5rem 1rem!important;border:1px solid transparent!important;border-radius:6px!important;cursor:pointer!important;font-size:.9rem!important;font-weight:500!important;transition:all .2s ease!important;background:none!important;margin:0!important;box-sizing:border-box!important}.upload-btn{background:#22c55e1a!important;color:#16a34a!important;border-color:#22c55e33!important}.upload-btn:hover{background:#22c55e26!important;border-color:#22c55e4d!important;transform:translateY(-1px)!important}.border-btn{background:#667eea1a!important;color:#667eea!important;border-color:#667eea33!important}.border-btn:hover{background:#667eea26!important;border-color:#667eea4d!important;transform:translateY(-1px)!important}.app-main{flex:1!important;padding:2rem!important;max-width:1400px!important;margin:0 auto!important;width:100%!important;box-sizing:border-box!important}.upload-page,.gallery-page{width:100%}.gallery-controls{background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;padding:.75rem 1rem;margin-bottom:1.5rem;box-shadow:0 4px 16px #00000014;display:flex;justify-content:flex-end;align-items:center}.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000}.modal{background:#fff;border-radius:16px;padding:2rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #0000004d}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#64748b;padding:.5rem;border-radius:50%;transition:all .2s ease}.modal-close:hover{background:#0000000d;color:#1a202c}.modal-content h2{margin-bottom:1.5rem;color:#1a202c;font-size:1.5rem;font-weight:600;text-align:center}.controls-section{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:2rem;margin-bottom:2rem;box-shadow:0 8px 32px #0000001a;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.image-uploader h3{color:#2d3748;margin-bottom:1rem;font-size:1.3rem;display:flex;align-items:center;gap:.5rem}.upload-area{border:3px dashed #cbd5e0;border-radius:15px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .3s ease;background:#f7fafc80}.upload-area:hover,.upload-area.drag-over{border-color:#667eea;background:#667eea1a;transform:translateY(-2px)}.upload-content{color:#718096}.upload-content svg{color:#667eea;margin-bottom:1rem}.upload-hint{font-size:.9rem;color:#a0aec0;margin-top:.5rem}.upload-spinner{width:32px;height:32px;border:3px solid #e2e8f0;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.layout-selector{display:flex;align-items:center;gap:1rem;background:#fffc;padding:.75rem 1.25rem;border-radius:50px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 20px #0000001a}.layout-label{color:#374151;font-size:.9rem;font-weight:600;white-space:nowrap}.layout-options{display:flex;gap:.25rem}.layout-option{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:25px;background:transparent;color:#6b7280;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .3s ease;position:relative;overflow:hidden}.layout-option:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#667eea,#764ba2);opacity:0;transition:opacity .3s ease;border-radius:25px}.layout-option:hover:before{opacity:.1}.layout-option:hover{color:#374151;transform:translateY(-1px)}.layout-option.selected{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 15px #667eea66}.layout-option.selected:before{opacity:0}.layout-option svg{color:inherit;z-index:1;position:relative}.layout-name{font-weight:500;z-index:1;position:relative}.border-customizer h3{color:#2d3748;margin-bottom:1rem;font-size:1.3rem;display:flex;align-items:center;gap:.5rem}.border-controls{display:flex;flex-direction:column;gap:1rem}.control-group{display:flex;align-items:center;gap:1rem}.control-group label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:#4a5568;min-width:100px}.control-group input[type=range]{flex:1;height:6px;border-radius:3px;background:#e2e8f0;outline:none;-webkit-appearance:none}.control-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#667eea;cursor:pointer}.control-group input[type=color]{width:40px;height:40px;border:none;border-radius:8px;cursor:pointer}.control-group select{padding:.5rem;border:2px solid #e2e8f0;border-radius:8px;background:#fff;color:#4a5568;cursor:pointer}.border-preview{margin-top:1rem;text-align:center}.preview-box{display:inline-block;padding:2rem;background:#f7fafc;color:#4a5568;font-weight:500;border-radius:8px}.app-footer{background:#fffffff2!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;padding:1.5rem!important;text-align:center!important;color:#718096!important;box-shadow:0 -4px 20px #0000001a!important;margin:0!important;box-sizing:border-box!important}.app-footer p{margin:0!important;font-size:.9rem!important}@media (max-width: 768px){.app-header{padding:1.5rem}.app-header h1{font-size:2rem}.app-main{padding:1rem}.controls-section{grid-template-columns:1fr;gap:1.5rem;padding:1.5rem}}.yarl__fullsize{height:100%;width:100%}.yarl__relative{position:relative}.yarl__portal{inset:0;opacity:0;overflow:hidden;position:fixed;transition:opacity var(--yarl__fade_animation_duration,.25s) var(--yarl__fade_animation_timing_function,ease);z-index:var(--yarl__portal_zindex,9999)}.yarl__portal_open{opacity:1}.yarl__container{background-color:var(--yarl__container_background_color,var(--yarl__color_backdrop,#000));inset:0;outline:none;overflow:hidden;overscroll-behavior:var(--yarl__controller_overscroll_behavior,contain);position:absolute;touch-action:var(--yarl__controller_touch_action,none);-webkit-user-select:none;-moz-user-select:none;user-select:none}.yarl__carousel{align-content:center;align-items:stretch;display:flex;flex:0 0 auto;height:100%;justify-content:center;opacity:var(--yarl__pull_opacity,1);transform:translate(var(--yarl__swipe_offset,0),var(--yarl__pull_offset,0));width:calc(100% + (var(--yarl__carousel_slides_count) - 1)*(100% + var(--yarl__carousel_spacing_px, 0)*1px + var(--yarl__carousel_spacing_percent, 0)*1%))}.yarl__carousel_with_slides{-moz-column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%);column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%)}.yarl__flex_center{align-content:center;align-items:center;display:flex;justify-content:center}.yarl__slide{flex:1;overflow:hidden;padding:calc(var(--yarl__carousel_padding_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_padding_percent, 0)*1%);position:relative}[dir=rtl] .yarl__slide{--yarl__direction:-1}.yarl__slide_image{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;touch-action:var(--yarl__controller_touch_action,none);-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.yarl__slide_image_cover{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.yarl__slide_image_loading{opacity:0}@media screen and (min-width:800px){.yarl__slide_wrapper:not(.yarl__slide_wrapper_interactive) .yarl__slide_image{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);-webkit-transform-style:preserve-3d}}.yarl__slide_placeholder{left:50%;line-height:0;position:absolute;top:50%;transform:translate(-50%) translateY(-50%)}.yarl__slide_loading{animation:yarl__delayed_fadein 1s linear;color:var(--yarl__slide_icon_loading_color,var(--yarl__color_button,hsla(0,0%,100%,.8)))}.yarl__slide_loading line{animation:yarl__stroke_opacity 1s linear infinite}.yarl__slide_loading line:first-of-type{animation-delay:-1.875s}.yarl__slide_loading line:nth-of-type(2){animation-delay:-1.75s}.yarl__slide_loading line:nth-of-type(3){animation-delay:-1.625s}.yarl__slide_loading line:nth-of-type(4){animation-delay:-1.5s}.yarl__slide_loading line:nth-of-type(5){animation-delay:-1.375s}.yarl__slide_loading line:nth-of-type(6){animation-delay:-1.25s}.yarl__slide_loading line:nth-of-type(7){animation-delay:-1.125s}.yarl__slide_loading line:nth-of-type(8){animation-delay:-1s}.yarl__slide_error{color:var(--yarl__slide_icon_error_color,red);height:var(--yarl__slide_icon_error_size,48px);width:var(--yarl__slide_icon_error_size,48px)}@media (prefers-reduced-motion){.yarl__portal,.yarl__slide{transition:unset}.yarl__slide_loading,.yarl__slide_loading line{animation:unset}}.yarl__toolbar{display:flex;justify-content:flex-end;inset:0 0 auto auto;padding:var(--yarl__toolbar_padding,8px);position:absolute}[dir=rtl] .yarl__toolbar{inset:0 auto auto 0}.yarl__icon{height:var(--yarl__icon_size,32px);width:var(--yarl__icon_size,32px)}.yarl__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--yarl__button_background_color,transparent);border:var(--yarl__button_border,0);color:var(--yarl__color_button,hsla(0,0%,100%,.8));cursor:pointer;filter:var(--yarl__button_filter,drop-shadow(2px 2px 2px rgba(0,0,0,.8)));line-height:0;margin:var(--yarl__button_margin,0);outline:none;padding:var(--yarl__button_padding,8px);-webkit-tap-highlight-color:transparent}.yarl__button:focus{color:var(--yarl__color_button_active,#fff)}.yarl__button:focus:not(:focus-visible){color:var(--yarl__color_button,hsla(0,0%,100%,.8))}.yarl__button:focus-visible{color:var(--yarl__color_button_active,#fff)}@media (hover:hover){.yarl__button:focus-visible:hover,.yarl__button:focus:hover,.yarl__button:hover{color:var(--yarl__color_button_active,#fff)}}.yarl__button:disabled{color:var(--yarl__color_button_disabled,hsla(0,0%,100%,.4));cursor:default}.yarl__navigation_next,.yarl__navigation_prev{padding:var(--yarl__navigation_button_padding,24px 16px);position:absolute;top:50%;transform:translateY(-50%)}.yarl__navigation_prev{left:0}[dir=rtl] .yarl__navigation_prev{left:unset;right:0;transform:translateY(-50%) rotate(180deg)}.yarl__navigation_next{right:0}[dir=rtl] .yarl__navigation_next{left:0;right:unset;transform:translateY(-50%) rotate(180deg)}.yarl__no_scroll{height:100%;overflow:hidden;overscroll-behavior:none}@keyframes yarl__delayed_fadein{0%{opacity:0}80%{opacity:0}to{opacity:1}}@keyframes yarl__stroke_opacity{0%{stroke-opacity:1}to{stroke-opacity:.125}}.yarl__slide_captions_container{background:var(--yarl__slide_captions_container_background,rgba(0,0,0,.5));left:var(--yarl__slide_captions_container_left,0);padding:var(--yarl__slide_captions_container_padding,16px);position:absolute;right:var(--yarl__slide_captions_container_right,0);-webkit-transform:translateZ(0)}.yarl__slide_title{color:var(--yarl__slide_title_color,#fff);font-size:var(--yarl__slide_title_font_size,125%);font-weight:var(--yarl__slide_title_font_weight,bolder);max-width:calc(100% - var(--yarl__toolbar_width, 0px));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yarl__slide_title_container{top:var(--yarl__slide_title_container_top,0)}.yarl__slide_description{display:-webkit-box;-webkit-hyphens:auto;hyphens:auto;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:var(--yarl__slide_description_max_lines,3);color:var(--yarl__slide_description_color,#fff);text-align:var(--yarl__slide_description_text_align,start)}.yarl__slide_description_container{bottom:var(--yarl__slide_description_container_bottom,0)}.metadata-modal{background:#fff;border-radius:20px;max-width:90vw;max-height:80vh;width:800px;overflow:hidden;box-shadow:0 25px 50px #00000040;animation:slideUp .3s ease-out}.metadata-modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1040;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:1rem}.metadata-modal-header{display:flex;align-items:center;justify-content:space-between;padding:2rem 3rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.metadata-modal-header h2{margin:0;font-size:1.5rem;font-weight:600}.metadata-modal-close{background:#fff3;border:none;color:#fff;width:40px;height:40px;border-radius:9999px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.metadata-modal-close:hover{background:#ffffff4d;transform:scale(1.1)}.metadata-modal-content{padding:3rem 3rem 1rem;max-height:calc(80vh - 120px);overflow-y:auto}.metadata-section{margin-bottom:1.5rem}.metadata-section:last-child{margin-bottom:0}.section-header{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #e2e8f0}.section-header h3{margin:0;color:#2d3748;font-size:1.125rem;font-weight:600}.section-header svg{color:#667eea}.section-content{padding-left:1.5rem}.info-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #edf2f7}.info-row:last-child{border-bottom:none}.info-label{color:#718096;font-weight:500;min-width:80px}.info-value{color:#2d3748;font-weight:500;text-align:right;flex:1;margin-left:1rem}.tags-container{display:flex;gap:.5rem;flex-wrap:wrap}.tag{padding:.5rem 1rem;border-radius:9999px;color:#fff;font-size:.75rem;font-weight:500;text-shadow:0 1px 3px rgba(0,0,0,.1)}.exif-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.exif-item{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:#f7fafc;border-radius:8px;border:1px solid #e2e8f0}.exif-label{color:#718096;font-size:.75rem;font-weight:500}.exif-value{color:#2d3748;font-weight:600;font-size:.875rem}.gps-info{background:#f0f9ff;padding:1rem;border-radius:8px;border:1px solid #bae6fd}@media (max-width: 768px){.metadata-modal{width:95vw;margin:1rem;max-height:85vh}.metadata-modal-content{max-height:calc(85vh - 100px)}.exif-grid{grid-template-columns:1fr}.metadata-section{margin-bottom:1.5rem}}@media (max-width: 480px){.metadata-modal{max-height:90vh}.metadata-modal-content{max-height:calc(90vh - 90px)}.section-content{padding-left:1rem}.metadata-section{margin-bottom:1rem}.section-header{margin-bottom:.5rem}}.image-gallery{background:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:20px;padding:3rem;box-shadow:0 10px 15px #0000001a}.loading-gallery{display:flex;align-items:center;justify-content:center;min-height:400px}.loading-content{text-align:center;color:#718096}.loading-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top:3px solid #667eea;border-radius:9999px;animation:spin 1s linear infinite;margin:0 auto 1rem}.empty-gallery{display:flex;align-items:center;justify-content:center;min-height:400px}.empty-content{text-align:center;color:#718096}.empty-content svg{margin-bottom:1rem;opacity:.5}.empty-content h3{margin-bottom:.5rem;color:#2d3748}.gallery-masonry{column-count:6;column-gap:1rem}@media (max-width: 768px){.gallery-masonry{column-count:4}}@media (max-width: 480px){.gallery-masonry{column-count:2}}.gallery-masonry .gallery-image{height:auto;object-fit:contain;transform-origin:top left;width:200%}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}.gallery-grid .gallery-image{height:250px;object-fit:cover}.gallery-item{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;margin-bottom:1.5rem;break-inside:avoid}.gallery-item.masonry{margin-bottom:1.5rem}.gallery-item.grid{margin-bottom:0}.image-container{position:relative}.image-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fffc;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:1;border-radius:8px}.loading-spinner{width:32px;height:32px;border:3px solid #e2e8f0;border-top:3px solid #667eea;border-radius:9999px;animation:spin 1s linear infinite}.gallery-image{width:100%;height:auto;object-fit:contain;object-position:center;transition:transform .3s ease;cursor:pointer;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;background:#f7fafc;display:block}.gallery-image:hover{transform:scale(1.02)}.image-overlay{position:absolute;inset:0;background:#00000080;opacity:0;transition:opacity .3s ease;display:flex;align-items:center;justify-content:center;pointer-events:none}.image-container:hover .image-overlay{opacity:1}.image-actions{display:flex;gap:.5rem;pointer-events:auto}.action-btn{background:#ffffffe6;border:none;border-radius:9999px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.action-btn:hover{background:#fff;transform:scale(1.1)}.action-btn.info-btn{color:#3182ce}.action-btn.delete-btn{color:#e53e3e}.image-info{padding:1rem}.image-name{color:#2d3748;margin-bottom:.5rem;font-size:1rem;font-weight:600}.image-dimensions{color:#718096;font-size:.875rem}.image-tags{display:flex;gap:.5rem;margin-top:.5rem;justify-content:center;flex-wrap:wrap}.tag{padding:.25rem .5rem;border-radius:9999px;color:#fff;font-size:.75rem;font-weight:500;text-shadow:0 1px 3px rgba(0,0,0,.1)}.yarl__container{background:#000000e6!important}.yarl__slide{background:transparent!important}.yarl__description{background:#ffffff1a!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:12px!important;padding:1rem!important;margin:1rem!important}.exif-info .exif-section h4{color:#fff;margin:0 0 .5rem;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.25rem}.yarl__description .exif-tags{gap:.25rem;justify-content:flex-start}.yarl__description .exif-tag{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);font-size:.75rem;padding:.25rem .5rem}.yarl__description .exif-tag:hover{background:#ffffff4d;color:#fff}.yarl__description .exif-tag svg{color:#fff}.yarl__zoom_container{cursor:grab!important}.yarl__zoom_container:active{cursor:grabbing!important}.yarl__zoom_wrapper{transition:transform .3s ease!important}.yarl__button_zoom_in,.yarl__button_zoom_out{background:#ffffff1a!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:9999px!important;color:#fff!important;transition:all .15s ease!important}.yarl__button_zoom_in:hover,.yarl__button_zoom_out:hover{background:#fff3!important;transform:scale(1.1)!important}.exif-tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1rem}.exif-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.5rem 1rem;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#2d3748;border-radius:9999px;font-size:.875rem;font-weight:500;border:1px solid rgba(255,255,255,.3);transition:all .15s ease;box-shadow:0 4px 12px #00000026}.exif-tag:hover{background:#fff;color:#667eea;transform:translateY(-2px);box-shadow:0 6px 20px #0003;border-color:#ffffff80}.exif-tag svg{flex-shrink:0}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.gallery-masonry{column-count:2}.image-modal{width:95vw;margin:1rem;max-height:85vh}.image-modal-content{max-height:calc(85vh - 40px)}.exif-tags{gap:.25rem}.exif-tag{font-size:.75rem;padding:.25rem .5rem}}@media (max-width: 480px){.gallery-masonry{column-count:1}.image-modal{max-height:90vh}.image-modal-content{max-height:calc(90vh - 40px)}.exif-tags{gap:.25rem;justify-content:flex-start}.exif-tag{font-size:.75rem;padding:.25rem .5rem}}.simple-notification{position:fixed;top:20px;right:20px;z-index:9999;min-width:300px;max-width:500px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;transform:translate(100%);opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);border-left:4px solid}.simple-notification.notification-success{border-left-color:#52c41a}.simple-notification.notification-error{border-left-color:#ff4d4f}.simple-notification.notification-warning{border-left-color:#faad14}.simple-notification.notification-info{border-left-color:#1890ff}.simple-notification:not(.leaving){transform:translate(0);opacity:1}.simple-notification.leaving{transform:translate(100%);opacity:0}.notification-content{display:flex;align-items:center;padding:16px;gap:12px}.notification-icon{font-size:18px;flex-shrink:0}.notification-message{flex:1;color:#333;font-size:14px;line-height:1.5;word-break:break-word}.notification-close{background:none;border:none;color:#999;cursor:pointer;font-size:18px;padding:4px;border-radius:4px;transition:all .2s ease;flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.notification-close:hover{background:#f5f5f5;color:#666}@media (max-width: 768px){.simple-notification{top:16px;right:16px;left:16px;min-width:auto;max-width:none}}
