@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=Dancing+Script:wght@700&display=swap";*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);color:#334155;line-height:1.6;min-height:100vh}.container{max-width:1400px;margin:0 auto;padding:100px 3rem 3rem;position:relative;animation:fadeIn .8s ease-out}.navbar{position:fixed;top:0;left:0;right:0;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;padding:1rem 3rem;box-shadow:0 2px 20px #0000001a;display:flex;justify-content:space-between;align-items:center}.nav-left{display:flex;align-items:center}.nav-right{display:flex;gap:1.5rem}.nav-btn{background:none;border:none;padding:.75rem 1.5rem;border-radius:25px;cursor:pointer;font-size:1rem;font-weight:500;color:#64748b;transition:all .3s ease;text-decoration:none}.nav-btn:hover{background:#3b82f61a;color:#3b82f6;transform:translateY(-1px)}.nav-btn.active{background:#3b82f626;color:#3b82f6;font-weight:600}.page-content{max-width:800px;margin:100px auto 0;padding:2rem;background:#fff;border-radius:16px;box-shadow:0 8px 25px #0000001a;line-height:1.7}.page-content h2{font-size:2.5rem;color:#1e293b;margin-bottom:1.5rem;text-align:center}.page-content p{font-size:1.1rem;color:#475569;margin-bottom:1rem}.page-content h3{font-size:1.5rem;color:#1e293b;margin-top:2rem;margin-bottom:1rem;font-weight:600}.page-content ul{margin:1rem 0;padding-left:2rem}.page-content li{font-size:1.1rem;color:#475569;margin-bottom:.5rem;line-height:1.6}.page-content strong{color:#1e293b;font-weight:600}.header{text-align:left;margin-bottom:6rem;display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:2rem}.title{font-size:1.5rem;font-weight:700;color:#1e293b;margin-bottom:0;text-align:left;letter-spacing:0;text-shadow:none;font-family:Dancing Script,cursive}.search-input{width:100%;max-width:500px;padding:1rem 1.5rem;font-size:1rem;border:2px solid #e2e8f0;border-radius:50px;outline:none;transition:all .3s ease;background:#fff;margin:0 auto;display:block;box-shadow:0 2px 10px #00000014}.search-input:hover{max-width:650px}.search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a,0 4px 15px #3b82f626;transform:scale(1.02);max-width:650px}.search-input.expanded{max-width:650px;padding:1rem 2rem}.search-input::placeholder{color:#94a3b8}.main{min-height:60vh}.photo-grid{column-count:4;column-gap:1.5rem;margin-top:3rem}.photo-container{break-inside:avoid;margin-bottom:1.5rem;page-break-inside:avoid}.photo-container.large{column-span:2}.photo{width:100%;height:auto;object-fit:contain;border-radius:16px;box-shadow:0 8px 25px -8px #00000026,0 4px 12px -4px #0000001a;transition:all .4s cubic-bezier(.25,.46,.45,.94);display:block}.photo-container{position:relative;cursor:pointer}.download-btn{position:absolute;top:.5rem;right:.5rem;background:#0009;color:#fff;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease,transform .3s ease;cursor:pointer;box-shadow:0 2px 8px #0000004d;transform:scale(.9)}.download-btn:hover{background:#000c;transform:scale(1.05)}.download-btn:active{transform:scale(.95);transition:transform .1s ease}.photo-container:hover .download-btn{opacity:1}.photo-overlay{position:absolute;bottom:.5rem;left:.5rem;background:#0009;color:#fff;padding:.5rem .75rem;border-radius:6px;opacity:0;transition:opacity .3s ease,transform .3s ease;font-size:1.05rem;font-weight:700;font-family:Playfair Display,serif;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;max-width:70%;box-shadow:0 2px 8px #0000004d;transform:translateY(10px)}.photo-container:hover .photo-overlay{opacity:1;transform:translateY(0)}.photo-container:hover .photo-overlay{opacity:1}.loading,.no-results{text-align:center;font-size:1.1rem;color:#64748b;margin-top:2rem;padding:2rem}.no-results{font-style:italic}@media (max-width: 768px){.container{padding:2rem}.title{font-size:2rem}.photo-grid{column-count:3;column-gap:1.5rem}.photo-grid{column-count:2;column-gap:1rem}@media (max-width: 480px){.photo-grid{column-count:1;column-gap:1rem}}.photo{height:auto;object-fit:contain}}@media (max-width: 480px){.photo-grid{grid-template-columns:1fr}}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity .3s ease}.modal.closing{opacity:0}.modal-content{background:#fff;border-radius:16px;display:flex;max-width:800px;max-height:90%;overflow:hidden;box-shadow:0 25px 50px -12px #00000040;animation:modalSlideIn .3s ease-out;transition:all .3s ease}.modal.closing .modal-content{transform:translateY(-20px) scale(.95);opacity:0}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-image{flex:1;max-width:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);opacity:0;animation:fadeInUp .4s ease-out .1s forwards;transition:opacity .3s ease,transform .3s ease}.modal-image img{max-width:100%;max-height:100%;object-fit:contain;border-radius:16px 0 0 16px}.modal.closing .modal-image{opacity:0;transform:translateY(10px)}.modal-info{flex:1;padding:2.5rem;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;opacity:0;animation:fadeInUp .4s ease-out .2s forwards;transition:opacity .3s ease}.modal.closing .modal-info{opacity:0}.modal-title{font-size:2rem;font-weight:700;color:#1e293b;margin-bottom:.5rem;line-height:1.2;font-family:Playfair Display,serif;opacity:0;transform:translateY(10px);animation:fadeInUpText .3s ease-out .3s forwards;transition:all .3s ease}.modal-description{color:#475569;font-size:1.1rem;line-height:1.7;margin-bottom:auto;flex-grow:1;opacity:0;transform:translateY(10px);animation:fadeInUpText .3s ease-out .4s forwards;transition:all .3s ease}.modal.closing .modal-title,.modal.closing .modal-description{opacity:0;transform:translateY(10px)}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}@keyframes fadeInUpText{to{opacity:1;transform:translateY(0)}}.close-btn{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;padding:1rem 2rem;border-radius:10px;cursor:pointer;font-size:1rem;font-weight:600;align-self:center;box-shadow:0 4px 14px #3b82f666;opacity:0;transform:translateY(10px);animation:fadeInUpText .3s ease-out .5s forwards;transition:all .3s ease}.modal.closing .close-btn{opacity:0;transform:translateY(10px)}.close-btn:hover{background:linear-gradient(135deg,#2563eb,#1e40af);transform:translateY(-2px);box-shadow:0 6px 20px #3b82f680}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.nav-btn{animation:slideIn .5s ease-out forwards;opacity:0}.nav-btn:nth-child(1){animation-delay:.1s}.nav-btn:nth-child(2){animation-delay:.2s}.nav-btn:nth-child(3){animation-delay:.3s}.nav-btn:nth-child(4){animation-delay:.4s}.photo-container{animation:fadeIn .6s ease-out forwards;opacity:0}.photo-container:nth-child(odd){animation-delay:.1s}.photo-container:nth-child(2n){animation-delay:.2s}.lazy-image-container{position:relative;width:100%;min-height:200px;border-radius:16px;overflow:hidden;cursor:pointer}.image-placeholder{width:100%;height:200px;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-radius:16px;position:relative;overflow:hidden}.loading-shimmer{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{left:-100%}to{left:100%}}.image-loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#f8fafce6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:2}.loading-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top:3px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.photo{transition:all .6s cubic-bezier(.25,.46,.45,.94);transform:scale(.95)}.photo.loading{opacity:0;transform:scale(.9)}.photo.loaded{opacity:1;transform:scale(1)}.photo.error{opacity:.5;filter:grayscale(100%)}.photo-wrapper{position:relative;display:block;width:100%}.lazy-image-container:hover .photo.loaded{transform:translateY(-4px) scale(1.03);filter:brightness(1.05);box-shadow:0 12px 30px -8px #0003,0 6px 15px -4px #00000026}html{scroll-behavior:smooth}.photo-grid{will-change:transform;transform:translateZ(0)}.photo{will-change:transform,opacity;backface-visibility:hidden;-webkit-backface-visibility:hidden}@keyframes progressiveLoad{0%{opacity:0;transform:scale(.8) translateY(20px);filter:blur(5px)}50%{opacity:.7;transform:scale(.95) translateY(10px);filter:blur(2px)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}.photo.loaded{animation:progressiveLoad .8s cubic-bezier(.25,.46,.45,.94) forwards}.photo-container:nth-child(1) .photo.loaded{animation-delay:.1s}.photo-container:nth-child(2) .photo.loaded{animation-delay:.2s}.photo-container:nth-child(3) .photo.loaded{animation-delay:.3s}.photo-container:nth-child(4) .photo.loaded{animation-delay:.4s}.photo-container:nth-child(5) .photo.loaded{animation-delay:.5s}.photo-container:nth-child(6) .photo.loaded{animation-delay:.6s}.photo-container:nth-child(7) .photo.loaded{animation-delay:.7s}.photo-container:nth-child(8) .photo.loaded{animation-delay:.8s}@media (max-width: 768px){.image-placeholder{height:150px}.loading-spinner{width:30px;height:30px;border-width:2px}}@media (max-width: 480px){.image-placeholder{height:120px}.loading-spinner{width:25px;height:25px}}
