|
|
@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.25rem; |
|
|
padding: 0 0.5rem; |
|
|
} |
|
|
|
|
|
.step-indicator-num { |
|
|
width: 1.5rem; |
|
|
height: 1.5rem; |
|
|
border-radius: 50%; |
|
|
font-size: 0.75rem; |
|
|
font-weight: 500; |
|
|
border: none; |
|
|
cursor: pointer; |
|
|
transition: all 0.2s; |
|
|
background-color: var(--muted); |
|
|
color: var(--muted-foreground); |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
} |
|
|
|
|
|
.step-indicator-num:hover { |
|
|
background-color: hsla(240, 5%, 96%, 0.8); |
|
|
transform: scale(1.05); |
|
|
} |
|
|
|
|
|
.step-indicator-num-active { |
|
|
background-color: var(--orange); |
|
|
color: white; |
|
|
box-shadow: 0 2px 8px hsla(35, 100%, 50%, 0.4); |
|
|
transform: scale(1.1); |
|
|
} |
|
|
|
|
|
.step-indicator-nav { |
|
|
width: 1.5rem; |
|
|
height: 1.5rem; |
|
|
border-radius: 50%; |
|
|
border: none; |
|
|
cursor: pointer; |
|
|
background-color: var(--muted); |
|
|
color: var(--muted-foreground); |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
transition: background-color 0.2s; |
|
|
} |
|
|
|
|
|
.step-indicator-nav:hover { |
|
|
background-color: hsla(240, 5%, 96%, 0.8); |
|
|
} |
|
|
|
|
|
|
|
|
.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 { |
|
|
height: 100%; |
|
|
width: auto; |
|
|
max-width: none; |
|
|
object-fit: contain; |
|
|
user-select: none; |
|
|
transition: transform 0.2s; |
|
|
} |
|
|
|
|
|
.fullscreen-placeholder { |
|
|
position: absolute; |
|
|
inset: 0; |
|
|
} |
|
|
|
|
|
.fullscreen-nav { |
|
|
flex-shrink: 0; |
|
|
} |
|
|
|
|
|
.fullscreen-youtube-mobile { |
|
|
flex-shrink: 0; |
|
|
} |
|
|
|