body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.top-nav-bar__topic-list{display:flex;justify-content:space-evenly;align-items:center;flex-wrap:nowrap;padding:10px 0;gap:15px;width:100%}.topic-list__item{margin:0}.topic-list__item span{font-size:18px;font-weight:500;color:#2b2b2b;text-decoration:none}.topic-list__item span:hover{text-decoration:overline;color:#111}.fav-badge{position:relative}.fav-badge__count{background-color:#000;width:20px;height:20px;border-radius:99px;position:absolute;top:0%;right:0%;left:70%;bottom:60%}.fav-badge__count span{text-align:center;color:#fff;width:100%;font-weight:500;position:absolute;font-size:16px}.fav-badge{position:relative;display:inline-block}.fav-badge__icon{width:24px;height:24px}.fav-badge__dot{position:absolute;top:0;right:0;width:8px;height:8px;background-color:#28c840;border:2px solid white;border-radius:50%}.top-nav-bar{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:72px;box-shadow:0 4px 6px -6px #222;background-color:#fff}.top-nav-bar__search{padding:8px 16px;border:2px solid #ddd;border-radius:20px;font-size:14px;width:250px;margin-left:24px;outline:none;transition:border-color .2s}.top-nav-bar__search:focus{border-color:#333}.top-nav-bar__search::placeholder{color:#999}.top-nav-bar__logo{font-weight:500;font-size:24px;color:#111;text-decoration:overline}.top-nav-bar__topic-list{display:flex;gap:24px;justify-content:center;flex-grow:1;margin-left:40px}.fav-badge{margin-left:auto;margin-right:8px}.top-nav-bar__notification{position:absolute;top:10px;right:10px;background-color:#fc0;color:#fff;padding:5px 10px;border-radius:5px;font-weight:700;z-index:10}.top-nav-bar__user-section{display:flex;align-items:center;gap:16px;margin-left:auto;margin-right:16px}.top-nav-bar__username{font-size:14px;color:#555;font-weight:500}.top-nav-bar__logout{padding:8px 16px;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.top-nav-bar__logout:hover{background:#764ba2}.top-nav-bar__upload{padding:10px 20px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;margin-left:16px}.top-nav-bar__upload:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.top-nav-bar__upload:active{transform:translateY(0)}@media (max-width: 768px){.top-nav-bar{flex-wrap:wrap;height:auto;padding:8px 12px;gap:8px}.top-nav-bar__search{width:100%;margin-left:0;order:2}.top-nav-bar__topic-list{width:100%;margin-left:0;overflow-x:auto;order:3;gap:12px}.top-nav-bar__upload{margin-left:8px}.top-nav-bar__user-section{margin-right:0}}.photo-list__fav-icon{position:relative;top:8px;right:-8px;cursor:pointer;margin-bottom:-30px;border-width:.1px;background-color:#eee;width:32px;height:32px;text-align:center;border-radius:100%}.photo-list__fav-icon-svg{padding:7px;top:2px}*,*:before,*:after{box-sizing:border-box}div.photo-list__item{margin:auto 24px 24px;padding:8px;border-width:.5px;border-color:#d3d3d3;border-style:solid;border-radius:8px;max-width:fit-content}div.photo-list__item img.photo-list__image{-webkit-user-select:none;user-select:none;width:300px;height:200px;object-fit:cover;border-radius:8px 8px 0 0}div.photo-list__item div.photo-list__user-details{display:flex}div.photo-list__item div.photo-list__user-details img.photo-list__user-profile{object-fit:cover;border-radius:100%;vertical-align:middle;margin-right:8px;width:40px;height:40px}div.photo-list__item div.photo-list__user-details div.photo-list__user-info{margin-top:5px;font-weight:700;font-size:12px;margin-left:8px}div.photo-list__item div.photo-list__user-details div.photo-list__user-info div.photo-list__user-location{color:#838383}@media (max-width: 768px){div.photo-list__item{margin:0;width:100%;max-width:none;padding:4px}div.photo-list__item img.photo-list__image{width:100%;height:120px}div.photo-list__item div.photo-list__user-details img.photo-list__user-profile{width:28px;height:28px}div.photo-list__item div.photo-list__user-details div.photo-list__user-info{font-size:10px}}.photo-list{display:flex;flex-wrap:wrap;justify-content:space-between;list-style-type:none;margin:0;padding:0}.photo-list:after{content:"";flex:0 1 30%;margin:5px}@media (max-width: 768px){.photo-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px;overflow:hidden;width:100%;box-sizing:border-box}.photo-list:after{display:none}}html,body{overflow-x:hidden;width:100%}.home-route{max-width:1200px;margin:auto;overflow-x:hidden}.photo-details-modal-overlay{position:fixed;top:0;left:0;height:100vh;width:100vw;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.photo-details-modal{background-color:#fff;box-shadow:0 10px 30px #0000004d;height:auto;width:90%;max-width:800px;max-height:85vh;overflow-y:auto;border-radius:12px;padding-bottom:24px;position:relative}.photo-details-modal__close-button{position:absolute;top:20px;left:20px;background:transparent;border:none;cursor:pointer;z-index:10}.photo-details-modal__images{display:flex;flex-direction:column;align-items:center;margin-top:48px;position:relative}.photo-details-modal__main-photo-container{background:white;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;margin-bottom:24px;width:95%;max-width:770px;padding:12px}.photo-details-modal__image{width:100%;max-height:500px;overflow:hidden;position:relative}.photo-details-modal__image img{width:100%;height:auto;max-height:500px;object-fit:cover;border-radius:8px}.photo-details-modal__photographer-inline{display:flex;align-items:center;background-color:#fff;padding:8px 12px;margin-top:8px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.photo-details-modal__photographer-profile{width:30px;height:30px;border-radius:50%;border:2px solid white;object-fit:cover;margin-right:8px}.photo-details-modal__photographer-info{display:flex;flex-direction:column}.photo-details-modal__photographer-name{font-size:13px;font-weight:700;color:#1e1e1e}.photo-details-modal__photographer-location{font-size:12px;color:#838383}.photo-details-modal__header{font-size:18px;font-weight:500;color:#1e1e1e;margin:24px auto 16px;text-align:center}.photo-details-modal__similar-photos{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:16px;padding:0 20px;max-width:770px;margin-left:auto;margin-right:auto}.photo-details-modal__description{margin-top:20px;padding:16px 20px;background:#f9f9f9;border-left:4px solid #667eea;border-radius:6px;color:#444;font-size:15px;line-height:1.7;font-style:italic}.photo-details-modal__title{margin-top:20px;font-size:20px;font-weight:600;color:#333}.login-form-container{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 72px);background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:24px}.login-form-card{background:white;border-radius:12px;padding:48px 40px;box-shadow:0 10px 40px #0000001a;width:100%;max-width:400px}.login-form-card h2{margin:0 0 8px;font-size:28px;color:#333;text-align:center}.login-form-card .login-subtitle{color:#666;text-align:center;margin:0 0 32px}.login-form .form-group{margin-bottom:20px}.login-form .form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333}.login-form .form-group input{width:100%;padding:12px;border:2px solid #ddd;border-radius:6px;font-size:16px;transition:border-color .2s}.login-form .form-group input:focus{outline:none;border-color:#667eea}.login-form .form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.login-form .form-group input::placeholder{color:#999}.login-form .login-button{width:100%;padding:14px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.login-form .login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.login-form .login-button:disabled{opacity:.6;cursor:not-allowed}.demo-button{width:100%;padding:14px;margin-top:12px;background:linear-gradient(135deg,#48bb78 0%,#38a169 100%);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.demo-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #48bb7866}.demo-button:disabled{opacity:.6;cursor:not-allowed}.demo-info{margin-top:20px;padding:16px;background:#f0f9ff;border:1px solid #bfdbfe;border-radius:8px;text-align:center}.demo-info p{margin:4px 0;color:#1e40af;font-size:14px}.demo-info p:first-child{font-weight:500;margin-bottom:8px}.demo-info p strong{color:#1e3a8a;font-family:monospace}.register-form-container{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 72px);background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:24px}.register-form-card{background:white;border-radius:12px;padding:48px 40px;box-shadow:0 10px 40px #0000001a;width:100%;max-width:400px}.register-form-card h2{margin:0 0 8px;font-size:28px;color:#333;text-align:center}.register-form-card .register-subtitle{color:#666;text-align:center;margin:0 0 32px}.error-message{background:#fee;border:1px solid #fcc;color:#c33;padding:12px;border-radius:6px;margin-bottom:20px;text-align:center}.register-form .form-group{margin-bottom:20px}.register-form .form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333}.register-form .form-group input{width:100%;padding:12px;border:2px solid #ddd;border-radius:6px;font-size:16px;transition:border-color .2s}.register-form .form-group input:focus{outline:none;border-color:#667eea}.register-form .form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.register-form .form-group input::placeholder{color:#999}.register-form .register-button{width:100%;padding:14px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.register-form .register-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.register-form .register-button:disabled{opacity:.6;cursor:not-allowed}.switch-form{margin-top:24px;text-align:center;color:#666}.switch-form .switch-button{background:none;border:none;color:#667eea;font-weight:600;cursor:pointer;padding:0;text-decoration:underline}.switch-form .switch-button:hover{color:#764ba2}.upload-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;justify-content:center;align-items:center;z-index:1000}.upload-modal{background:white;border-radius:12px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d}.upload-modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e0e0e0}.upload-modal-header h2{margin:0;font-size:24px;color:#333}.upload-modal-header .close-button{background:none;border:none;font-size:32px;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.upload-modal-header .close-button:hover{color:#333}.error-message{background:#fee;border:1px solid #fcc;color:#c33;padding:12px;margin:16px 24px 0;border-radius:6px;text-align:center}.upload-form{padding:24px}.upload-form .form-group{margin-bottom:20px}.upload-form .form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333}.upload-form .form-group input[type=text],.upload-form .form-group input[type=file],.upload-form .form-group textarea,.upload-form .form-group select{width:100%;padding:12px;border:2px solid #ddd;border-radius:6px;font-size:16px;transition:border-color .2s}.upload-form .form-group input[type=text]:focus,.upload-form .form-group input[type=file]:focus,.upload-form .form-group textarea:focus,.upload-form .form-group select:focus{outline:none;border-color:#667eea}.upload-form .form-group input[type=text]:disabled,.upload-form .form-group input[type=file]:disabled,.upload-form .form-group textarea:disabled,.upload-form .form-group select:disabled{background:#f5f5f5;cursor:not-allowed}.upload-form .form-group textarea{resize:vertical;font-family:inherit}.upload-form .form-group input[type=file]{padding:8px;cursor:pointer}.upload-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.upload-form .image-preview{margin-top:12px;border-radius:8px;overflow:hidden;border:2px solid #e0e0e0}.upload-form .image-preview img{width:100%;height:auto;display:block}.upload-form .form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:24px;border-top:1px solid #e0e0e0}.upload-form .form-actions button{padding:12px 24px;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.upload-form .form-actions button:disabled{opacity:.6;cursor:not-allowed}.upload-form .form-actions .cancel-button{background:#f5f5f5;color:#666}.upload-form .form-actions .cancel-button:hover:not(:disabled){background:#e0e0e0}.upload-form .form-actions .upload-button{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.upload-form .form-actions .upload-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.upload-tabs{display:flex;gap:8px;padding:16px 24px 0;border-bottom:2px solid #e0e0e0}.upload-tab{flex:1;padding:12px 16px;background:none;border:none;border-bottom:3px solid transparent;font-size:15px;font-weight:500;color:#666;cursor:pointer;transition:all .2s;margin-bottom:-2px}.upload-tab:hover{color:#667eea}.upload-tab.active{color:#667eea;border-bottom-color:#667eea}.ai-generate-button{width:100%;margin-top:8px;padding:10px 16px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.ai-generate-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.ai-generate-button:disabled{opacity:.6;cursor:not-allowed}.coming-soon{text-align:center;padding:60px 24px}.coming-soon__icon{font-size:64px;margin-bottom:16px}.coming-soon h3{font-size:24px;color:#333;margin-bottom:12px}.coming-soon p{color:#666;font-size:16px;margin-bottom:8px;line-height:1.5}.coming-soon__subtitle{font-size:18px;font-weight:600;color:#667eea;margin-top:24px;margin-bottom:32px}.coming-soon .cancel-button{margin:0 auto}
