Spaces:
Sleeping
Sleeping
| /* | |
| * Dog Breed Identifier - Custom CSS | |
| * Created by: Janith Deshan | |
| * Last Updated: 2025-10-20 18:24:56 UTC | |
| * User: IT24102137 | |
| */ | |
| :root { | |
| /* Main color palette */ | |
| --primary: #4a6fa5; | |
| --primary-dark: #345481; | |
| --primary-light: #6a8fc5; | |
| --secondary: #ff8b5e; | |
| --secondary-dark: #e67a4d; | |
| --secondary-light: #ff9f7a; | |
| --accent: #54d1bd; | |
| --text: #2e3a59; | |
| --text-light: #7988a3; | |
| --light: #f9fafc; | |
| --dark: #273149; | |
| --white: #ffffff; | |
| --background: #f5f7fa; | |
| --gray-100: #f6f8fb; | |
| --gray-200: #e9ecf3; | |
| --gray-300: #d2d9e5; | |
| --shadow: rgba(46, 58, 89, 0.1); | |
| } | |
| /* Global styles */ | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| html { | |
| scroll-behavior: smooth; | |
| } | |
| body { | |
| font-family: 'Poppins', sans-serif; | |
| background-color: var(--background); | |
| color: var(--text); | |
| line-height: 1.6; | |
| overflow-x: hidden; | |
| position: relative; | |
| min-height: 100vh; | |
| } | |
| h1, h2, h3, h4, h5, h6 { | |
| font-family: 'Nunito', sans-serif; | |
| font-weight: 700; | |
| line-height: 1.3; | |
| color: var(--dark); | |
| } | |
| a { | |
| text-decoration: none; | |
| transition: all 0.3s ease; | |
| color: var(--primary); | |
| } | |
| a:hover { | |
| color: var(--secondary); | |
| } | |
| .btn { | |
| font-weight: 600; | |
| padding: 10px 24px; | |
| border-radius: 8px; | |
| transition: all 0.3s ease; | |
| } | |
| .btn-primary { | |
| background-color: var(--primary); | |
| border-color: var(--primary); | |
| } | |
| .btn-primary:hover { | |
| background-color: var(--primary-dark); | |
| border-color: var(--primary-dark); | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 15px rgba(74, 111, 165, 0.25); | |
| } | |
| .btn i { | |
| margin-right: 8px; | |
| } | |
| img { | |
| max-width: 100%; | |
| } | |
| .rounded-4 { | |
| border-radius: 16px; | |
| } | |
| /* Background animations */ | |
| .animated-background { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| z-index: -1; | |
| overflow: hidden; | |
| pointer-events: none; | |
| } | |
| .particle-container { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| } | |
| .particle { | |
| position: absolute; | |
| background-color: var(--primary-light); | |
| border-radius: 50%; | |
| opacity: 0.3; | |
| animation: float linear infinite; | |
| } | |
| .paw-prints { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| } | |
| .paw { | |
| position: absolute; | |
| width: 20px; | |
| height: 20px; | |
| background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="%234a6fa5" opacity="0.1" d="M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm294.56 0c-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34-29.12-6.96-61.15 15.48-71.56 50.13z"/></svg>'); | |
| background-size: contain; | |
| background-repeat: no-repeat; | |
| opacity: 0.1; | |
| } | |
| @keyframes float { | |
| 0% { | |
| transform: translateY(0) translateX(0) rotate(0deg); | |
| opacity: 0; | |
| } | |
| 10% { | |
| opacity: 0.3; | |
| } | |
| 90% { | |
| opacity: 0.2; | |
| } | |
| 100% { | |
| transform: translateY(-100vh) translateX(20px) rotate(180deg); | |
| opacity: 0; | |
| } | |
| } | |
| /* App Wrapper */ | |
| .app-wrapper { | |
| position: relative; | |
| z-index: 1; | |
| } | |
| /* Navbar */ | |
| .app-header { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| z-index: 1000; | |
| padding: 15px 0; | |
| transition: all 0.3s ease; | |
| background-color: rgba(255, 255, 255, 0.9); | |
| backdrop-filter: blur(10px); | |
| box-shadow: 0 2px 15px rgba(0, 0, 0, 0.05); | |
| } | |
| .navbar-brand { | |
| display: flex; | |
| align-items: center; | |
| font-family: 'Nunito', sans-serif; | |
| font-weight: 800; | |
| font-size: 1.6rem; | |
| color: var(--primary); | |
| } | |
| .navbar-brand i { | |
| font-size: 1.8rem; | |
| margin-right: 10px; | |
| color: var(--secondary); | |
| } | |
| .navbar-toggler { | |
| border: none; | |
| color: var(--primary); | |
| font-size: 1.5rem; | |
| padding: 5px; | |
| } | |
| .navbar-nav .nav-link { | |
| font-weight: 600; | |
| color: var(--text); | |
| padding: 10px 15px; | |
| position: relative; | |
| } | |
| .navbar-nav .nav-link:after { | |
| content: ''; | |
| position: absolute; | |
| width: 0; | |
| height: 3px; | |
| background: var(--secondary); | |
| bottom: 0; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| transition: width 0.3s ease; | |
| border-radius: 10px; | |
| } | |
| .navbar-nav .nav-link.active:after, | |
| .navbar-nav .nav-link:hover:after { | |
| width: 60%; | |
| } | |
| .navbar-nav .nav-link.active, | |
| .navbar-nav .nav-link:hover { | |
| color: var(--primary); | |
| } | |
| /* Hero Section */ | |
| .hero-section { | |
| padding: 140px 0 80px; | |
| position: relative; | |
| } | |
| .hero-content h1 { | |
| font-size: 3rem; | |
| margin-bottom: 1.5rem; | |
| color: var(--primary-dark); | |
| position: relative; | |
| display: inline-block; | |
| } | |
| .hero-content h1:after { | |
| content: ''; | |
| position: absolute; | |
| width: 60px; | |
| height: 5px; | |
| background: var(--secondary); | |
| bottom: -15px; | |
| left: 0; | |
| border-radius: 10px; | |
| } | |
| .hero-content .lead { | |
| font-size: 1.2rem; | |
| color: var(--text-light); | |
| margin-bottom: 2rem; | |
| } | |
| .hero-image { | |
| position: relative; | |
| padding: 10px; | |
| } | |
| .hero-image img { | |
| border-radius: 16px; | |
| box-shadow: 0 25px 50px rgba(0, 0, 0, 0.1); | |
| transition: all 0.5s ease; | |
| } | |
| .hero-image:hover img { | |
| transform: translateY(-10px); | |
| box-shadow: 0 35px 60px rgba(0, 0, 0, 0.15); | |
| } | |
| .floating-icon { | |
| position: absolute; | |
| width: 50px; | |
| height: 50px; | |
| border-radius: 50%; | |
| background: var(--white); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); | |
| animation: float-icon 3s ease-in-out infinite; | |
| } | |
| .floating-icon i { | |
| font-size: 1.3rem; | |
| } | |
| .icon-1 { | |
| top: -20px; | |
| left: 10%; | |
| background: var(--primary); | |
| color: var(--white); | |
| animation-delay: 0s; | |
| } | |
| .icon-2 { | |
| top: 20%; | |
| right: -15px; | |
| background: var(--secondary); | |
| color: var(--white); | |
| animation-delay: 1s; | |
| } | |
| .icon-3 { | |
| bottom: 10px; | |
| left: 20%; | |
| background: var(--accent); | |
| color: var(--white); | |
| animation-delay: 2s; | |
| } | |
| @keyframes float-icon { | |
| 0%, 100% { | |
| transform: translateY(0); | |
| } | |
| 50% { | |
| transform: translateY(-15px); | |
| } | |
| } | |
| .scan-animation { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient(to bottom, | |
| rgba(255,255,255,0) 0%, | |
| rgba(74,111,165,0.15) 50%, | |
| rgba(255,255,255,0) 100%); | |
| pointer-events: none; | |
| animation: scan 3s linear infinite; | |
| } | |
| @keyframes scan { | |
| 0% { | |
| transform: translateY(-100%); | |
| } | |
| 100% { | |
| transform: translateY(100%); | |
| } | |
| } | |
| /* Identifier Section */ | |
| .identifier-section { | |
| padding: 80px 0; | |
| position: relative; | |
| } | |
| .identifier-card { | |
| background: var(--white); | |
| border-radius: 16px; | |
| box-shadow: 0 15px 40px var(--shadow); | |
| overflow: hidden; | |
| transition: all 0.3s ease; | |
| } | |
| .identifier-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 20px 50px rgba(0, 0, 0, 0.12); | |
| } | |
| .card-header { | |
| padding: 25px 30px; | |
| background: var(--primary); | |
| color: var(--white); | |
| text-align: center; | |
| } | |
| .card-header h2 { | |
| color: var(--white); | |
| font-weight: 700; | |
| margin-bottom: 5px; | |
| font-size: 1.8rem; | |
| } | |
| .card-header p { | |
| opacity: 0.9; | |
| margin: 0; | |
| } | |
| .card-body { | |
| padding: 30px; | |
| } | |
| /* Upload Container */ | |
| .upload-container { | |
| margin-bottom: 25px; | |
| } | |
| .upload-area { | |
| border: 2px dashed var(--gray-300); | |
| border-radius: 12px; | |
| padding: 20px; | |
| text-align: center; | |
| transition: all 0.3s ease; | |
| background: var(--gray-100); | |
| position: relative; | |
| cursor: pointer; | |
| } | |
| .upload-area:hover { | |
| border-color: var(--primary); | |
| background: var(--gray-200); | |
| } | |
| .upload-area.drag-over { | |
| border-color: var(--secondary); | |
| background: rgba(255, 139, 94, 0.05); | |
| } | |
| .upload-area.file-selected { | |
| border-color: var(--accent); | |
| background: rgba(84, 209, 189, 0.05); | |
| } | |
| .upload-icon { | |
| font-size: 3rem; | |
| color: var(--primary); | |
| margin-bottom: 15px; | |
| } | |
| .upload-text { | |
| margin-bottom: 10px; | |
| } | |
| .upload-text span { | |
| display: block; | |
| margin-bottom: 10px; | |
| color: var(--text-light); | |
| } | |
| .browse-btn { | |
| background: none; | |
| border: none; | |
| color: var(--primary); | |
| font-weight: 600; | |
| cursor: pointer; | |
| padding: 0; | |
| } | |
| .browse-btn:hover { | |
| color: var(--secondary); | |
| text-decoration: underline; | |
| } | |
| .upload-info { | |
| font-size: 0.85rem; | |
| color: var(--text-light); | |
| margin: 10px 0 0; | |
| } | |
| .file-input { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| opacity: 0; | |
| cursor: pointer; | |
| } | |
| .selected-file { | |
| margin-top: 15px; | |
| font-size: 0.9rem; | |
| color: var(--text); | |
| text-align: center; | |
| min-height: 24px; | |
| font-weight: 500; | |
| } | |
| /* Image Preview Styles */ | |
| .preview-container { | |
| display: none; | |
| position: relative; | |
| width: 100%; | |
| max-width: 300px; | |
| margin: 15px auto 0; | |
| border: 1px solid var(--gray-200); | |
| border-radius: 12px; | |
| overflow: hidden; | |
| background: var(--gray-100); | |
| box-shadow: 0 4px 10px rgba(0,0,0,0.05); | |
| min-height: 150px; | |
| } | |
| #image-preview { | |
| width: 100%; | |
| height: auto; | |
| display: none; | |
| } | |
| #preview-text { | |
| display: block; | |
| padding: 20px; | |
| color: var(--text-light); | |
| text-align: center; | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| transform: translate(-50%, -50%); | |
| width: 100%; | |
| } | |
| /* Upload Error Message */ | |
| .upload-error { | |
| margin-top: 15px; | |
| text-align: left; | |
| font-size: 0.9rem; | |
| display: flex; | |
| align-items: center; | |
| animation: fadeIn 0.3s ease; | |
| } | |
| .upload-error i { | |
| margin-right: 8px; | |
| font-size: 1rem; | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; transform: translateY(-10px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| /* Loading Overlay */ | |
| .loading-overlay { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: rgba(255, 255, 255, 0.8); | |
| display: flex; | |
| flex-direction: column; | |
| justify-content: center; | |
| align-items: center; | |
| z-index: 2000; | |
| opacity: 0; | |
| pointer-events: none; | |
| transition: opacity 0.3s ease; | |
| } | |
| .loading-overlay.active { | |
| opacity: 1; | |
| pointer-events: all; | |
| } | |
| .loading-spinner { | |
| width: 80px; | |
| height: 80px; | |
| border-radius: 50%; | |
| border: 8px solid var(--gray-200); | |
| border-top-color: var(--primary); | |
| animation: spin 1s linear infinite; | |
| margin-bottom: 20px; | |
| } | |
| .loading-message { | |
| font-weight: 600; | |
| color: var(--primary-dark); | |
| margin-top: 15px; | |
| text-align: center; | |
| } | |
| .loading-dog { | |
| width: 60px; | |
| height: 60px; | |
| background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="%234a6fa5" d="M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm294.56 0c-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34-29.12-6.96-61.15 15.48-71.56 50.13z"/></svg>'); | |
| background-repeat: no-repeat; | |
| background-position: center; | |
| margin: 0 auto; | |
| animation: bounce 1.5s ease infinite alternate; | |
| } | |
| @keyframes spin { | |
| to { transform: rotate(360deg); } | |
| } | |
| @keyframes bounce { | |
| 0% { transform: translateY(0); } | |
| 100% { transform: translateY(-15px); } | |
| } | |
| /* Results Section */ | |
| .result-section { | |
| margin-top: 40px; | |
| border-top: 1px solid var(--gray-200); | |
| padding-top: 30px; | |
| } | |
| .result-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 25px; | |
| } | |
| .result-header h3 { | |
| margin: 0; | |
| color: var(--primary-dark); | |
| font-size: 1.5rem; | |
| } | |
| .analysis-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| padding: 6px 12px; | |
| border-radius: 8px; | |
| background: rgba(84, 209, 189, 0.15); | |
| color: var(--accent); | |
| font-weight: 600; | |
| font-size: 0.9rem; | |
| } | |
| .analysis-badge i { | |
| margin-right: 6px; | |
| } | |
| .result-content { | |
| background: var(--gray-100); | |
| border-radius: 12px; | |
| padding: 20px; | |
| box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); | |
| } | |
| .result-image { | |
| position: relative; | |
| border-radius: 8px; | |
| overflow: hidden; | |
| box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); | |
| } | |
| .image-overlay { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient(to bottom, | |
| rgba(74,111,165,0.1) 0%, | |
| rgba(255,255,255,0) 100%); | |
| pointer-events: none; | |
| } | |
| .scan-line { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 2px; | |
| background: rgba(74,111,165,0.7); | |
| box-shadow: 0 0 10px rgba(74,111,165,0.5); | |
| animation: scan-result 2s linear infinite; | |
| } | |
| @keyframes scan-result { | |
| 0% { | |
| top: 0; | |
| } | |
| 100% { | |
| top: 100%; | |
| } | |
| } | |
| .result-details { | |
| padding: 10px; | |
| } | |
| .result-item { | |
| margin-bottom: 20px; | |
| } | |
| .item-label { | |
| display: flex; | |
| align-items: center; | |
| font-size: 0.9rem; | |
| color: var(--text-light); | |
| margin-bottom: 8px; | |
| } | |
| .item-label i { | |
| margin-right: 8px; | |
| color: var(--primary); | |
| } | |
| .item-value { | |
| font-weight: 700; | |
| color: var(--dark); | |
| font-size: 1.1rem; | |
| } | |
| .prediction-tag { | |
| display: inline-block; | |
| padding: 6px 12px; | |
| background: var(--primary-light); | |
| color: var(--white); | |
| border-radius: 6px; | |
| font-size: 1rem; | |
| font-weight: 600; | |
| box-shadow: 0 3px 6px rgba(74, 111, 165, 0.2); | |
| } | |
| .progress { | |
| height: 6px; | |
| background-color: var(--gray-200); | |
| border-radius: 10px; | |
| overflow: hidden; | |
| } | |
| .progress-bar { | |
| background: linear-gradient(to right, var(--primary), var(--accent)); | |
| border-radius: 10px; | |
| animation: progress 1s ease-out forwards; | |
| } | |
| .progress-bar.high-confidence { | |
| background: linear-gradient(to right, var(--primary), var(--accent)); | |
| } | |
| .progress-bar.medium-confidence { | |
| background: linear-gradient(to right, var(--primary-light), var(--accent)); | |
| } | |
| .progress-bar.low-confidence { | |
| background: linear-gradient(to right, var(--secondary), var(--secondary-light)); | |
| } | |
| @keyframes progress { | |
| 0% { | |
| width: 0; | |
| } | |
| } | |
| .other-predictions li { | |
| margin-bottom: 5px; | |
| padding-bottom: 5px; | |
| border-bottom: 1px dashed var(--gray-200); | |
| font-weight: 500; | |
| font-size: 0.95rem; | |
| } | |
| .other-predictions li:last-child { | |
| border-bottom: none; | |
| margin-bottom: 0; | |
| padding-bottom: 0; | |
| } | |
| /* "Not a Dog" Icon Styles */ | |
| .not-dog-icon { | |
| font-size: 3rem; | |
| position: relative; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| height: 100px; | |
| margin-bottom: 15px; | |
| } | |
| .not-dog-icon i.fa-paw { | |
| color: var(--text-light); | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .not-dog-icon i.fa-ban { | |
| color: var(--secondary); | |
| position: absolute; | |
| font-size: 3.5rem; | |
| opacity: 0.8; | |
| } | |
| .prediction-text { | |
| font-size: 1.2rem; | |
| color: var(--text); | |
| margin-bottom: 10px; | |
| } | |
| /* Share Results Section */ | |
| .share-results { | |
| margin-top: 20px; | |
| text-align: center; | |
| padding-top: 15px; | |
| border-top: 1px solid var(--gray-200); | |
| } | |
| .share-text { | |
| font-size: 0.9rem; | |
| color: var(--text-light); | |
| margin-bottom: 10px; | |
| } | |
| .share-buttons { | |
| display: flex; | |
| justify-content: center; | |
| gap: 10px; | |
| } | |
| .share-btn { | |
| width: 36px; | |
| height: 36px; | |
| padding: 0; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| border-radius: 50%; | |
| transition: all 0.3s ease; | |
| } | |
| .btn-facebook { | |
| background-color: #3b5998; | |
| border-color: #3b5998; | |
| color: white; | |
| } | |
| .btn-twitter { | |
| background-color: #1da1f2; | |
| border-color: #1da1f2; | |
| color: white; | |
| } | |
| .btn-pinterest { | |
| background-color: #bd081c; | |
| border-color: #bd081c; | |
| color: white; | |
| } | |
| .btn-email { | |
| background-color: #737373; | |
| border-color: #737373; | |
| color: white; | |
| } | |
| .share-btn:hover { | |
| transform: translateY(-3px); | |
| box-shadow: 0 5px 15px rgba(0,0,0,0.1); | |
| color: white; | |
| } | |
| /* About Section */ | |
| .about-section { | |
| padding: 80px 0; | |
| background-color: var(--gray-100); | |
| position: relative; | |
| } | |
| .about-section h2 { | |
| font-size: 2.5rem; | |
| color: var(--primary-dark); | |
| margin-bottom: 15px; | |
| } | |
| .section-lead { | |
| font-size: 1.1rem; | |
| color: var(--text-light); | |
| max-width: 700px; | |
| margin: 0 auto; | |
| } | |
| .feature-card { | |
| background: var(--white); | |
| border-radius: 16px; | |
| padding: 30px; | |
| text-align: center; | |
| box-shadow: 0 10px 30px var(--shadow); | |
| height: 100%; | |
| transition: all 0.3s ease; | |
| } | |
| .feature-card:hover { | |
| transform: translateY(-10px); | |
| box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1); | |
| } | |
| .feature-card:hover .feature-icon { | |
| background: var(--secondary); | |
| color: var(--white); | |
| } | |
| .feature-icon { | |
| width: 70px; | |
| height: 70px; | |
| background: var(--primary); | |
| color: var(--white); | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin: 0 auto 20px; | |
| font-size: 1.8rem; | |
| transition: all 0.3s ease; | |
| } | |
| .feature-card h3 { | |
| margin-bottom: 15px; | |
| font-size: 1.4rem; | |
| } | |
| .feature-card p { | |
| color: var(--text-light); | |
| margin-bottom: 0; | |
| } | |
| .tech-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| background: var(--white); | |
| padding: 10px 20px; | |
| border-radius: 50px; | |
| box-shadow: 0 5px 15px var(--shadow); | |
| } | |
| .tech-badge span { | |
| margin: 0 10px; | |
| font-weight: 600; | |
| color: var(--text-light); | |
| } | |
| .tech-badge i { | |
| font-size: 1.5rem; | |
| color: var(--primary-dark); | |
| } | |
| /* Footer */ | |
| .footer-section { | |
| background: var(--dark); | |
| color: rgba(255, 255, 255, 0.8); | |
| padding: 80px 0 30px; | |
| position: relative; | |
| } | |
| .footer-section h4 { | |
| color: var(--white); | |
| margin-bottom: 25px; | |
| font-size: 1.4rem; | |
| position: relative; | |
| padding-bottom: 15px; | |
| } | |
| .footer-section h4:after { | |
| content: ''; | |
| position: absolute; | |
| left: 0; | |
| bottom: 0; | |
| width: 40px; | |
| height: 3px; | |
| background: var(--secondary); | |
| border-radius: 3px; | |
| } | |
| .footer-logo { | |
| display: flex; | |
| align-items: center; | |
| margin-bottom: 20px; | |
| } | |
| .footer-logo i { | |
| font-size: 2rem; | |
| color: var(--secondary); | |
| margin-right: 10px; | |
| } | |
| .footer-logo span { | |
| font-family: 'Nunito', sans-serif; | |
| font-weight: 800; | |
| font-size: 1.8rem; | |
| color: var(--white); | |
| } | |
| .footer-about p { | |
| margin-bottom: 20px; | |
| line-height: 1.7; | |
| } | |
| .tech-stack { | |
| display: flex; | |
| align-items: center; | |
| flex-wrap: wrap; | |
| gap: 15px; | |
| margin-top: 15px; | |
| } | |
| .tech-stack span { | |
| opacity: 0.7; | |
| font-size: 0.9rem; | |
| } | |
| .tech-stack i { | |
| font-size: 1.3rem; | |
| opacity: 0.9; | |
| transition: all 0.3s ease; | |
| } | |
| .tech-stack i:hover { | |
| color: var(--secondary); | |
| transform: translateY(-3px); | |
| } | |
| .footer-links ul { | |
| list-style: none; | |
| padding: 0; | |
| margin: 0; | |
| } | |
| .footer-links li { | |
| margin-bottom: 12px; | |
| } | |
| .footer-links a { | |
| color: rgba(255, 255, 255, 0.8); | |
| transition: all 0.3s ease; | |
| display: flex; | |
| align-items: center; | |
| } | |
| .footer-links a i { | |
| margin-right: 8px; | |
| font-size: 0.8rem; | |
| } | |
| .footer-links a:hover { | |
| color: var(--secondary); | |
| padding-left: 5px; | |
| } | |
| .developer-info { | |
| background: rgba(255, 255, 255, 0.05); | |
| border-radius: 12px; | |
| padding: 25px; | |
| } | |
| .dev-profile { | |
| display: flex; | |
| align-items: center; | |
| margin-bottom: 20px; | |
| } | |
| .dev-avatar { | |
| width: 60px; | |
| height: 60px; | |
| border-radius: 50%; | |
| background: var(--primary); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin-right: 15px; | |
| box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); | |
| overflow: hidden; | |
| } | |
| .dev-avatar img { | |
| width: 100%; | |
| height: 100%; | |
| object-fit: cover; | |
| } | |
| .dev-details { | |
| flex: 1; | |
| } | |
| .dev-details h5 { | |
| color: var(--white); | |
| margin-bottom: 5px; | |
| font-size: 1.1rem; | |
| } | |
| .dev-details p { | |
| margin: 0; | |
| font-size: 0.9rem; | |
| opacity: 0.7; | |
| } | |
| .social-links { | |
| display: flex; | |
| gap: 10px; | |
| } | |
| .social-links a { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 40px; | |
| height: 40px; | |
| background: rgba(255, 255, 255, 0.1); | |
| border-radius: 50%; | |
| color: var(--white); | |
| transition: all 0.3s ease; | |
| } | |
| .social-links a:hover { | |
| background: var(--secondary); | |
| transform: translateY(-5px); | |
| box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); | |
| } | |
| .footer-bottom { | |
| border-top: 1px solid rgba(255, 255, 255, 0.1); | |
| padding-top: 30px; | |
| margin-top: 50px; | |
| font-size: 0.9rem; | |
| opacity: 0.7; | |
| } | |
| /* Responsive */ | |
| @media (max-width: 991px) { | |
| .hero-content { | |
| margin-top: 30px; | |
| text-align: center; | |
| } | |
| .hero-content h1:after { | |
| left: 50%; | |
| transform: translateX(-50%); | |
| } | |
| .hero-section { | |
| padding: 120px 0 60px; | |
| } | |
| .about-section h2, | |
| .section-lead { | |
| text-align: center; | |
| } | |
| .feature-card { | |
| margin-bottom: 30px; | |
| } | |
| .footer-about, | |
| .footer-links, | |
| .developer-info { | |
| margin-bottom: 40px; | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .hero-content h1 { | |
| font-size: 2.5rem; | |
| } | |
| .card-header h2 { | |
| font-size: 1.5rem; | |
| } | |
| .result-header { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: 10px; | |
| } | |
| .result-image { | |
| margin-bottom: 20px; | |
| } | |
| .footer-section { | |
| text-align: center; | |
| } | |
| .footer-section h4:after { | |
| left: 50%; | |
| transform: translateX(-50%); | |
| } | |
| .dev-profile { | |
| flex-direction: column; | |
| text-align: center; | |
| } | |
| .dev-avatar { | |
| margin-right: 0; | |
| margin-bottom: 15px; | |
| } | |
| .social-links { | |
| justify-content: center; | |
| } | |
| .footer-links a { | |
| justify-content: center; | |
| } | |
| .footer-bottom { | |
| text-align: center; | |
| } | |
| .share-buttons { | |
| flex-wrap: wrap; | |
| } | |
| } | |
| @media (max-width: 576px) { | |
| .hero-content h1 { | |
| font-size: 2rem; | |
| } | |
| .hero-content .lead { | |
| font-size: 1rem; | |
| } | |
| .floating-icon { | |
| width: 40px; | |
| height: 40px; | |
| } | |
| .floating-icon i { | |
| font-size: 1rem; | |
| } | |
| .card-body { | |
| padding: 20px; | |
| } | |
| .upload-icon { | |
| font-size: 2.5rem; | |
| } | |
| .footer-section { | |
| padding: 60px 0 30px; | |
| } | |
| .preview-container { | |
| max-width: 100%; | |
| } | |
| .loading-message { | |
| padding: 0 20px; | |
| } | |
| } |