| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); |
|
|
| |
| :root { |
| --background: hsl(244, 7%, 96%); |
| --foreground: hsl(0, 0%, 20%); |
| --card: hsl(0, 0%, 100%); |
| --card-foreground: hsl(0, 0%, 20%); |
| --primary: hsl(35, 100%, 50%); |
| --primary-foreground: hsl(0, 0%, 100%); |
| --secondary: hsl(0, 0%, 100%); |
| --secondary-foreground: hsl(0, 0%, 53%); |
| --muted: hsl(240, 5%, 96%); |
| --muted-foreground: hsl(240, 4%, 46%); |
| --accent: hsl(193, 60%, 52%); |
| --accent-foreground: hsl(0, 0%, 100%); |
| --destructive: hsl(0, 84%, 60%); |
| --border: hsl(0, 0%, 88%); |
| --input: hsl(0, 0%, 88%); |
| --ring: hsl(35, 100%, 50%); |
| --radius: 0.75rem; |
| --orange: hsl(35, 100%, 50%); |
| --yellow: hsl(47, 100%, 56%); |
| --cyan: hsl(193, 60%, 52%); |
| --navy: hsl(222, 48%, 35%); |
| --shadow-sm: 0 2px 8px hsla(0, 0%, 0%, 0.08); |
| --shadow-lg: 0 4px 20px hsla(0, 0%, 0%, 0.1); |
| --shadow-card: 0 4px 20px hsla(0, 0%, 0%, 0.1); |
| } |
|
|
| |
| *, *::before, *::after { |
| box-sizing: border-box; |
| margin: 0; |
| padding: 0; |
| border-color: var(--border); |
| } |
|
|
| html { |
| scroll-behavior: smooth; |
| } |
|
|
| body { |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; |
| background-color: var(--background); |
| color: var(--foreground); |
| line-height: 1.6; |
| -webkit-font-smoothing: antialiased; |
| -moz-osx-font-smoothing: grayscale; |
| } |
|
|
| |
| .hidden { |
| display: none !important; |
| } |
|
|
| .min-h-screen { |
| min-height: 100vh; |
| } |
|
|
| .bg-background { |
| background-color: var(--background); |
| } |
|
|
| |
| .container { |
| max-width: 1280px; |
| margin: 0 auto; |
| padding: 0 1rem; |
| } |
|
|
| .container-full { |
| max-width: 100%; |
| padding: 0 1rem; |
| } |
|
|
| @media (min-width: 768px) { |
| .container-full { |
| padding: 0 2rem; |
| } |
| } |
|
|
| |
| @keyframes fade-in { |
| from { |
| opacity: 0; |
| transform: translateY(10px); |
| } |
| to { |
| opacity: 1; |
| transform: translateY(0); |
| } |
| } |
|
|
| @keyframes slide-in { |
| from { |
| opacity: 0; |
| transform: translateX(20px); |
| } |
| to { |
| opacity: 1; |
| transform: translateX(0); |
| } |
| } |
|
|
| .animate-fade-in { |
| animation: fade-in 0.5s ease-out; |
| } |
|
|
| .animate-slide-in { |
| animation: slide-in 0.3s ease-out; |
| } |
|
|
| |
| .header { |
| border-bottom: 1px solid var(--border); |
| background-color: hsla(0, 0%, 100%, 0.8); |
| backdrop-filter: blur(12px); |
| -webkit-backdrop-filter: blur(12px); |
| position: sticky; |
| top: 0; |
| z-index: 50; |
| } |
|
|
| .header-content { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| padding: 1rem 0; |
| flex-wrap: wrap; |
| gap: 1rem; |
| } |
|
|
| .header-left { |
| display: flex; |
| align-items: center; |
| gap: 1rem; |
| } |
|
|
| .header-icon { |
| width: 3.5rem; |
| height: 3.5rem; |
| object-fit: contain; |
| } |
|
|
| .header-title { |
| font-size: 1.5rem; |
| font-weight: 700; |
| color: var(--foreground); |
| } |
|
|
| .header-subtitle { |
| color: var(--muted-foreground); |
| font-size: 0.875rem; |
| } |
|
|
| |
| .main-content { |
| padding: 2.5rem 0; |
| } |
|
|
| |
| .intro-section { |
| text-align: center; |
| margin-bottom: 2.5rem; |
| } |
|
|
| .intro-title { |
| font-size: 1.875rem; |
| font-weight: 700; |
| color: var(--foreground); |
| margin-bottom: 1rem; |
| } |
|
|
| @media (min-width: 768px) { |
| .intro-title { |
| font-size: 2.25rem; |
| } |
| } |
|
|
| .intro-text { |
| font-size: 1.125rem; |
| color: var(--muted-foreground); |
| max-width: 42rem; |
| margin: 0 auto; |
| } |
|
|
| .intro-text strong { |
| color: var(--foreground); |
| } |
|
|
| |
| .step-viewer { |
| background-color: var(--card); |
| border-radius: 1rem; |
| overflow: hidden; |
| box-shadow: var(--shadow-card); |
| border: 1px solid var(--border); |
| } |
|
|
| |
| .image-container { |
| position: relative; |
| background-color: var(--secondary); |
| height: calc(100vh - 300px); |
| min-height: 300px; |
| } |
|
|
| .image-wrapper { |
| width: 100%; |
| height: 100%; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| } |
|
|
| .step-image { |
| width: 100%; |
| height: 100%; |
| object-fit: contain; |
| cursor: pointer; |
| transition: transform 0.3s ease; |
| } |
|
|
| .step-image:hover { |
| transform: scale(1.02); |
| } |
|
|
| |
| .step-counter { |
| position: absolute; |
| top: 1rem; |
| left: 1rem; |
| z-index: 10; |
| background-color: hsla(0, 0%, 100%, 0.9); |
| backdrop-filter: blur(8px); |
| -webkit-backdrop-filter: blur(8px); |
| padding: 0.5rem 1rem; |
| border-radius: 0.75rem; |
| } |
|
|
| .step-counter span { |
| font-size: 1.25rem; |
| font-weight: 700; |
| color: var(--foreground); |
| } |
|
|
| |
| .fullscreen-btn { |
| position: absolute; |
| top: 1rem; |
| right: 1rem; |
| z-index: 10; |
| background-color: hsla(0, 0%, 100%, 0.9); |
| backdrop-filter: blur(8px); |
| -webkit-backdrop-filter: blur(8px); |
| border: none; |
| border-radius: 0.5rem; |
| padding: 0.5rem; |
| cursor: pointer; |
| box-shadow: var(--shadow-lg); |
| transition: background-color 0.2s; |
| } |
|
|
| .fullscreen-btn:hover { |
| background-color: var(--card); |
| } |
|
|
| |
| .placeholder { |
| width: 100%; |
| height: 100%; |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| justify-content: center; |
| background: linear-gradient(to bottom right, var(--muted), var(--secondary)); |
| padding: 2rem; |
| } |
|
|
| .placeholder-circle { |
| width: 6rem; |
| height: 6rem; |
| border-radius: 50%; |
| background-color: hsla(240, 4%, 46%, 0.2); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| margin-bottom: 1rem; |
| } |
|
|
| .placeholder-circle span { |
| font-size: 2.5rem; |
| font-weight: 700; |
| color: var(--muted-foreground); |
| } |
|
|
| .placeholder-circle-lg { |
| width: 8rem; |
| height: 8rem; |
| } |
|
|
| .placeholder-circle-lg span { |
| font-size: 3rem; |
| } |
|
|
| .placeholder-text { |
| font-size: 1.125rem; |
| color: var(--muted-foreground); |
| } |
|
|
| .placeholder-text-lg { |
| font-size: 1.25rem; |
| color: var(--muted-foreground); |
| } |
|
|
| |
| .youtube-desktop { |
| display: none; |
| position: absolute; |
| bottom: 1rem; |
| right: 1rem; |
| width: 20rem; |
| aspect-ratio: 16 / 9; |
| z-index: 20; |
| border-radius: 0.5rem; |
| overflow: hidden; |
| box-shadow: var(--shadow-card); |
| } |
|
|
| @media (min-width: 768px) { |
| .youtube-desktop { |
| display: block; |
| } |
| } |
|
|
| .youtube-desktop iframe { |
| width: 100%; |
| height: 100%; |
| border: none; |
| } |
|
|
| .youtube-mobile { |
| width: 100%; |
| aspect-ratio: 16 / 9; |
| background-color: var(--secondary); |
| } |
|
|
| @media (min-width: 768px) { |
| .youtube-mobile { |
| display: none; |
| } |
| } |
|
|
| .youtube-mobile iframe { |
| width: 100%; |
| height: 100%; |
| border: none; |
| } |
|
|
| |
| .nav-controls { |
| padding: 1.5rem; |
| background-color: var(--card); |
| border-top: 1px solid var(--border); |
| } |
|
|
| .nav-buttons { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| gap: 1rem; |
| margin-bottom: 1rem; |
| flex-wrap: wrap; |
| } |
|
|
| |
| .btn { |
| display: inline-flex; |
| align-items: center; |
| gap: 0.5rem; |
| font-size: 1rem; |
| font-weight: 500; |
| padding: 0.75rem 1.5rem; |
| border-radius: 0.5rem; |
| border: none; |
| cursor: pointer; |
| transition: all 0.2s; |
| font-family: inherit; |
| } |
|
|
| .btn:disabled { |
| opacity: 0.3; |
| cursor: not-allowed; |
| } |
|
|
| .btn-outline { |
| background-color: transparent; |
| border: 1px solid var(--border); |
| color: var(--foreground); |
| } |
|
|
| .btn-outline:hover:not(:disabled) { |
| background-color: var(--muted); |
| gap: 0.75rem; |
| } |
|
|
| .btn-primary { |
| background-color: var(--card); |
| color: var(--orange); |
| border: 1px solid var(--orange); |
| } |
|
|
| .btn-primary:hover:not(:disabled) { |
| background-color: var(--orange); |
| color: var(--primary-foreground); |
| gap: 0.75rem; |
| } |
|
|
| .btn-icon { |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| width: 2.25rem; |
| height: 2.25rem; |
| border-radius: 0.5rem; |
| border: 1px solid var(--border); |
| background-color: transparent; |
| cursor: pointer; |
| transition: background-color 0.2s; |
| } |
|
|
| .btn-icon:hover { |
| background-color: var(--muted); |
| } |
|
|
| |
| .step-indicators { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| gap: 0.5rem; |
| padding: 0 1rem; |
| overflow-x: auto; |
| } |
|
|
| .step-indicator { |
| height: 0.75rem; |
| border-radius: 9999px; |
| transition: all 0.3s; |
| cursor: pointer; |
| border: none; |
| } |
|
|
| .step-indicator-inactive { |
| width: 0.75rem; |
| background-color: hsla(240, 4%, 46%, 0.3); |
| } |
|
|
| .step-indicator-inactive:hover { |
| background-color: hsla(240, 4%, 46%, 0.5); |
| } |
|
|
| .step-indicator-active { |
| width: 3rem; |
| background: var(--orange); |
| box-shadow: 0 0 20px hsla(35, 100%, 50%, 0.4); |
| } |
|
|
| |
| .progress-bar-container { |
| width: 100%; |
| background-color: var(--secondary); |
| border-radius: 9999px; |
| height: 0.5rem; |
| overflow: hidden; |
| } |
|
|
| .progress-bar { |
| height: 100%; |
| background: linear-gradient(to right, var(--yellow), var(--orange)); |
| border-radius: 9999px; |
| transition: width 0.5s ease-out; |
| } |
|
|
| |
| .footer { |
| border-top: 1px solid var(--border); |
| background-color: var(--card); |
| margin-top: 4rem; |
| } |
|
|
| .footer-text { |
| text-align: center; |
| padding: 1.5rem 0; |
| color: var(--muted-foreground); |
| } |
|
|
| .footer-link { |
| color: var(--foreground); |
| text-decoration: underline; |
| transition: color 0.2s; |
| } |
|
|
| .footer-link:hover { |
| color: var(--orange); |
| } |
|
|
| |
| .fullscreen-modal { |
| position: fixed; |
| inset: 0; |
| z-index: 100; |
| background-color: var(--background); |
| display: flex; |
| flex-direction: column; |
| animation: fade-in 0.3s ease-out; |
| } |
|
|
| .fullscreen-header { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| padding: 1rem; |
| background-color: var(--card); |
| border-bottom: 1px solid var(--border); |
| flex-shrink: 0; |
| } |
|
|
| .fullscreen-title { |
| font-size: 1.125rem; |
| font-weight: 700; |
| color: var(--foreground); |
| } |
|
|
| .fullscreen-controls { |
| display: flex; |
| align-items: center; |
| gap: 0.5rem; |
| } |
|
|
| .zoom-level { |
| min-width: 3.75rem; |
| text-align: center; |
| font-weight: 500; |
| color: var(--foreground); |
| } |
|
|
| .fullscreen-content { |
| flex: 1; |
| position: relative; |
| overflow: hidden; |
| background-color: var(--secondary); |
| } |
|
|
| .fullscreen-image-container { |
| width: 100%; |
| height: 100%; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| overflow: hidden; |
| cursor: grab; |
| } |
|
|
| .fullscreen-image-container:active { |
| cursor: grabbing; |
| } |
|
|
| .fullscreen-image { |
| max-width: none; |
| user-select: none; |
| transition: transform 0.2s; |
| } |
|
|
| @media (max-width: 767px) { |
| .fullscreen-image { |
| width: 100%; |
| height: auto; |
| } |
| } |
|
|
| .fullscreen-placeholder { |
| position: absolute; |
| inset: 0; |
| } |
|
|
| .fullscreen-nav { |
| flex-shrink: 0; |
| } |
|
|
| .fullscreen-youtube-mobile { |
| flex-shrink: 0; |
| } |
|
|