diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 252da01..2865cd0 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -11,9 +11,16 @@ "Bash(python:*)", "Bash(start http://localhost:8000/gallery.html)", "WebFetch(domain:naver.me)", - "WebFetch(domain:chzzk.naver.com)" + "WebFetch(domain:chzzk.naver.com)", + "Bash(netsh advfirewall firewall show rule:*)", + "Bash(findstr:*)", + "Bash(curl -s ifconfig.me)", + "Bash(curl:*)", + "Bash(netstat:*)", + "Bash(ipconfig)", + "Bash(ping:*)" ], "deny": [], "ask": [] } -} \ No newline at end of file +} diff --git a/css/main.css b/css/main.css index 162f0a2..9399908 100644 --- a/css/main.css +++ b/css/main.css @@ -19,7 +19,7 @@ left: 0; right: 0; bottom: 0; - background: + background: radial-gradient(circle at 20% 50%, rgba(255, 136, 0, 0.1) 0%, transparent 50%), radial-gradient(circle at 80% 80%, rgba(255, 153, 51, 0.1) 0%, transparent 50%); z-index: 0; diff --git a/css/services.css b/css/services.css index 78ff63a..4ae8924 100644 --- a/css/services.css +++ b/css/services.css @@ -1434,12 +1434,408 @@ .streaming-grid { grid-template-columns: 1fr; } - + .features-grid { grid-template-columns: repeat(2, 1fr); } } +/* ======================================== + 뮤직비디오 제작 서비스 스타일 + ======================================== */ + +/* MV 인트로 */ +.mv-intro { + text-align: center; + margin-bottom: var(--spacing-2xl); +} + +.mv-intro > p { + font-size: var(--font-lg); + color: var(--text-secondary); + margin-bottom: var(--spacing-lg); +} + +.mv-price-summary { + display: flex; + flex-direction: column; + gap: var(--spacing-sm); + padding: var(--spacing-lg); + background: linear-gradient(135deg, #fff8f0, #fef3e2); + border-radius: var(--border-radius); + border: 2px solid var(--primary-color); +} + +.price-range { + font-size: var(--font-xl); + font-weight: 700; + color: var(--primary-color); +} + +.mv-price-summary .price-note { + font-size: var(--font-sm); + color: var(--text-secondary); +} + +/* 워크플로우 노트 */ +.mv-workflow-note { + margin-top: var(--spacing-lg); + padding: var(--spacing-md) var(--spacing-lg); + background: #f0f9ff; + border-radius: var(--border-radius-sm); + border-left: 4px solid #0284c7; +} + +.mv-workflow-note p { + margin: 0 0 var(--spacing-sm) 0; + color: var(--text-primary); + font-size: var(--font-base); + line-height: 1.6; +} + +.mv-workflow-note p:last-child { + margin-bottom: 0; +} + +.mv-workflow-note .highlight { + font-weight: 700; + color: var(--primary-color); + font-size: var(--font-lg); +} + +.workflow-detail { + font-size: var(--font-sm); + color: var(--text-secondary); +} + +/* MV 프로세스 */ +.mv-process { + margin-bottom: var(--spacing-2xl); +} + +.mv-process > h4 { + font-size: var(--font-xl); + color: var(--text-primary); + margin-bottom: var(--spacing-xl); + text-align: center; + padding-bottom: var(--spacing-md); + border-bottom: 2px solid var(--primary-color); +} + +/* 워크플로우 페이즈 */ +.workflow-phases { + display: flex; + justify-content: center; + gap: var(--spacing-md); + margin-bottom: var(--spacing-2xl); + flex-wrap: wrap; +} + +.phase-badge { + background: linear-gradient(135deg, var(--primary-color), #ff9933); + color: var(--text-white); + padding: var(--spacing-sm) var(--spacing-lg); + border-radius: var(--border-radius-full); + font-size: var(--font-sm); + font-weight: 600; + box-shadow: 0 2px 8px rgba(255, 136, 0, 0.3); +} + +.process-steps { + display: flex; + flex-direction: column; + gap: var(--spacing-xl); +} + +/* 견적 단계 헤더 */ +.mv-phase-header { + margin: var(--spacing-2xl) 0 var(--spacing-xl) 0; + padding: var(--spacing-lg) var(--spacing-xl); + background: linear-gradient(135deg, #fff8f0, #fef3e2); + border-left: 5px solid var(--primary-color); + border-radius: var(--border-radius); +} + +.mv-phase-header h4 { + margin: 0; + font-size: var(--font-xl); + font-weight: 700; + color: var(--primary-color); +} + +.mv-phase-header:first-child { + margin-top: 0; +} + +/* MV 스텝 */ +.mv-step { + display: flex; + gap: var(--spacing-lg); + background: var(--bg-white); + padding: var(--spacing-xl); + border-radius: var(--border-radius); + border-left: 4px solid var(--primary-color); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); + transition: var(--transition); +} + +.mv-step:hover { + transform: translateX(5px); + box-shadow: 0 4px 15px rgba(255, 136, 0, 0.15); +} + +.step-icon { + font-size: var(--font-3xl); + flex-shrink: 0; +} + +.step-details { + flex: 1; +} + +/* 스텝 페이즈 라벨 */ +.step-phase { + display: inline-block; + background: #e0f2fe; + color: #0c4a6e; + padding: var(--spacing-xs) var(--spacing-md); + border-radius: var(--border-radius-full); + font-size: var(--font-xs); + font-weight: 600; + margin-bottom: var(--spacing-md); +} + +.step-details h5 { + font-size: var(--font-xl); + color: var(--text-primary); + margin-bottom: var(--spacing-md); +} + +.step-details p { + color: var(--text-secondary); + line-height: 1.6; + margin-bottom: var(--spacing-sm); +} + +.detail-note { + font-size: var(--font-sm); + color: var(--text-secondary); + font-style: italic; + opacity: 0.9; +} + +/* 배경 가격 옵션 */ +.pricing-options { + display: grid; + gap: var(--spacing-md); + margin: var(--spacing-lg) 0; +} + +.pricing-option { + display: grid; + grid-template-columns: 1fr auto; + gap: var(--spacing-md); + padding: var(--spacing-md); + background: #f8fafc; + border-radius: var(--border-radius-sm); + border: 1px solid #e2e8f0; +} + +.option-type { + font-weight: 600; + color: var(--text-primary); + grid-column: 1 / 2; +} + +.option-price { + font-weight: 700; + color: var(--primary-color); + grid-column: 2 / 3; + grid-row: 1 / 2; + text-align: right; +} + +.option-note { + font-size: var(--font-sm); + color: var(--text-secondary); + grid-column: 1 / -1; + line-height: 1.4; +} + +/* 프로세스 노트 */ +.process-note { + margin-top: var(--spacing-lg); + padding: var(--spacing-md); + background: #e0f2fe; + border-radius: var(--border-radius-sm); + border-left: 3px solid #0284c7; +} + +.process-note p { + margin: 0; + font-size: var(--font-sm); + color: #0c4a6e; +} + +/* 스텝 가격 */ +.step-pricing { + display: flex; + align-items: baseline; + gap: var(--spacing-sm); + margin: var(--spacing-md) 0; + padding: var(--spacing-sm) var(--spacing-md); + background: linear-gradient(135deg, #fff8f0, #fef3e2); + border-radius: var(--border-radius-sm); + border: 1px solid #fed7aa; +} + +.step-pricing .price-label { + font-size: var(--font-base); + color: var(--text-secondary); + font-weight: 600; +} + +.step-pricing .price-amount { + font-size: var(--font-lg); + font-weight: 700; + color: var(--primary-color); +} + +.step-pricing .price-note { + font-size: var(--font-sm); + color: var(--text-secondary); + font-style: italic; +} + +/* 모션캡처 가격 섹션 */ +.mv-mocap-pricing { + margin: var(--spacing-lg) 0; + padding: var(--spacing-md); + background: #fafafa; + border-radius: var(--border-radius-sm); + border: 1px solid #e5e7eb; +} + +.mv-mocap-pricing h6 { + font-size: var(--font-base); + color: var(--text-primary); + margin: 0 0 var(--spacing-md) 0; + font-weight: 600; +} + +.mv-mocap-pricing .step-pricing { + margin: var(--spacing-sm) 0; +} + +/* MV 비용 요약 */ +.mv-cost-summary { + margin-top: var(--spacing-2xl); + padding: var(--spacing-xl); + background: #f8fafc; + border-radius: var(--border-radius); + border: 2px solid #e2e8f0; +} + +.mv-cost-summary > h4 { + font-size: var(--font-xl); + color: var(--text-primary); + margin-bottom: var(--spacing-lg); + text-align: center; +} + +.cost-breakdown { + display: grid; + gap: var(--spacing-md); +} + +.cost-item { + display: flex; + justify-content: space-between; + align-items: center; + padding: var(--spacing-md); + background: var(--bg-white); + border-radius: var(--border-radius-sm); + border-left: 3px solid var(--primary-color); +} + +.cost-label { + font-size: var(--font-base); + color: var(--text-primary); + font-weight: 600; +} + +.cost-value { + font-size: var(--font-base); + color: var(--primary-color); + font-weight: 700; +} + +/* MV 프로덕션 패키지 특별 스타일 */ +.mv-production { + background: linear-gradient(135deg, #fef9f5 0%, #ffffff 100%); + border: 2px solid var(--primary-color); +} + +.mv-production .package-badge { + background: linear-gradient(135deg, #dc2626, #b91c1c); +} + +/* 모바일 반응형 - 뮤직비디오 */ +@media (max-width: 768px) { + .mv-step { + flex-direction: column; + padding: var(--spacing-lg); + } + + .step-icon { + font-size: var(--font-2xl); + } + + .workflow-phases { + flex-direction: column; + gap: var(--spacing-sm); + } + + .phase-badge { + text-align: center; + } + + .pricing-option { + grid-template-columns: 1fr; + gap: var(--spacing-xs); + } + + .option-price { + grid-column: 1 / -1; + grid-row: 2 / 3; + text-align: left; + } + + .step-pricing { + flex-direction: column; + align-items: flex-start; + gap: var(--spacing-xs); + } + + .cost-item { + flex-direction: column; + align-items: flex-start; + gap: var(--spacing-xs); + } + + .mv-price-summary { + padding: var(--spacing-md); + } + + .price-range { + font-size: var(--font-lg); + } + + .mv-workflow-note .highlight { + font-size: var(--font-base); + } +} + /* 정보 리스트 */ .info-list { list-style: none; diff --git a/index.html b/index.html index d40c972..dbd1124 100644 --- a/index.html +++ b/index.html @@ -294,7 +294,7 @@
-