From 95eaf73e300b5cf06892b9d7672a7309df10dd7a Mon Sep 17 00:00:00 2001 From: "qsxft258@gmail.com" Date: Wed, 17 Sep 2025 22:25:54 +0900 Subject: [PATCH] =?UTF-8?q?Fix=20:=20=EA=B0=A4=EB=9F=AC=EB=A6=AC=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/gallery.css | 233 +++++++++++++++++++++++++++++------------------- 1 file changed, 139 insertions(+), 94 deletions(-) diff --git a/css/gallery.css b/css/gallery.css index e589f8e..54d5fd8 100644 --- a/css/gallery.css +++ b/css/gallery.css @@ -234,43 +234,49 @@ 100% { transform: rotate(360deg); } } -/* 360도 이미지 뷰어 스타일 */ +/* 360도 이미지 뷰어 스타일 - 서버 호환성 개선 */ .panorama-section { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); - padding: var(--spacing-3xl) 0; - margin: var(--spacing-3xl) 0; - border-radius: var(--border-radius); + padding: 5rem 0; + margin: 5rem 0; + border-radius: 8px; } .panorama-section h2 { text-align: center; - font-size: var(--font-4xl); - margin-bottom: var(--spacing-md); - color: var(--text-dark); + font-size: 2.5rem; + margin-bottom: 1rem; + color: #222222; + font-weight: 700; } .panorama-section .section-subtitle { text-align: center; - font-size: var(--font-lg); - color: var(--text-light); - margin-bottom: var(--spacing-2xl); + font-size: 1.1rem; + color: #999999; + margin-bottom: 3rem; } .panorama-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); - gap: var(--spacing-xl); - margin-top: var(--spacing-2xl); + gap: 2rem; + margin-top: 3rem; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + padding: 0 20px; } .panorama-viewer { position: relative; - background: var(--bg-white); - border-radius: var(--border-radius); + background: #ffffff; + border-radius: 8px; overflow: hidden; box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12); - transition: var(--transition); + transition: all 0.3s ease; cursor: grab; + max-width: 100%; } .panorama-viewer:hover { @@ -284,6 +290,9 @@ .panorama-clickable { cursor: pointer; + display: block; + width: 100%; + position: relative; } .panorama-clickable:hover { @@ -300,13 +309,16 @@ width: 100%; height: 300px; overflow: hidden; + background: #000; } .panorama-preview-image { width: 100%; height: 100%; object-fit: cover; - transition: var(--transition); + transition: all 0.3s ease; + display: block; + max-width: 100%; } .panorama-play-button { @@ -321,11 +333,13 @@ display: flex; align-items: center; justify-content: center; - font-size: var(--font-2xl); - color: var(--text-white); - transition: var(--transition); + font-size: 1.5rem; + color: #ffffff; + transition: all 0.3s ease; box-shadow: 0 8px 25px rgba(255, 136, 0, 0.3); backdrop-filter: blur(10px); + border: none; + cursor: pointer; } .panorama-play-button i { @@ -343,16 +357,17 @@ left: 0; right: 0; background: linear-gradient(transparent, rgba(0, 0, 0, 0.8)); - padding: var(--spacing-lg); + padding: 1.5rem; display: flex; justify-content: space-between; align-items: center; } .panorama-title { - color: var(--text-white); + color: #ffffff; font-weight: 600; - font-size: var(--font-base); + font-size: 1rem; + margin: 0; } .panorama-buttons { @@ -385,26 +400,29 @@ .panorama-indicator { position: absolute; - top: var(--spacing-md); - right: var(--spacing-md); + top: 1rem; + right: 1rem; background: rgba(0, 0, 0, 0.7); - color: var(--text-white); - padding: var(--spacing-xs) var(--spacing-sm); - border-radius: var(--border-radius-full); - font-size: var(--font-xs); + color: #ffffff; + padding: 0.25rem 0.5rem; + border-radius: 20px; + font-size: 0.75rem; font-weight: 500; + z-index: 2; } .panorama-help { position: absolute; - top: var(--spacing-md); - left: var(--spacing-md); + top: 1rem; + left: 1rem; background: rgba(255, 136, 0, 0.9); - color: var(--text-white); - padding: var(--spacing-xs) var(--spacing-sm); - border-radius: var(--border-radius-sm); - font-size: var(--font-xs); + color: #ffffff; + padding: 0.25rem 0.5rem; + border-radius: 4px; + font-size: 0.75rem; animation: fadeInOut 3s ease-in-out; + z-index: 2; + white-space: nowrap; } @keyframes fadeInOut { @@ -436,7 +454,7 @@ width: 95vw; height: 90vh; max-width: 1400px; - border-radius: var(--border-radius); + border-radius: 8px; overflow: hidden; box-shadow: 0 25px 50px rgba(0, 0, 0, 0.7); background: #000; @@ -448,9 +466,11 @@ width: 100%; height: 100%; overflow: hidden; - border-radius: var(--border-radius); + border-radius: 8px; background: #000; cursor: grab; + max-width: 100%; + max-height: 100%; } .panorama-viewer-container:active { @@ -491,74 +511,79 @@ left: 0; right: 0; background: linear-gradient(transparent, rgba(0, 0, 0, 0.9)); - padding: var(--spacing-xl) var(--spacing-2xl); + padding: 2rem 3rem; display: flex; justify-content: space-between; align-items: center; backdrop-filter: blur(10px); + z-index: 10; } .panorama-modal-title { - color: var(--text-white); + color: #ffffff; font-weight: 700; - font-size: var(--font-2xl); + font-size: 1.5rem; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); + margin: 0; } /* 새로운 컨트롤 버튼 스타일 */ .panorama-control-buttons { display: flex; - gap: var(--spacing-lg); + gap: 1.5rem; flex-wrap: wrap; + align-items: center; } .panorama-btn { display: flex; flex-direction: column; align-items: center; - gap: var(--spacing-xs); + gap: 0.25rem; background: rgba(255, 255, 255, 0.15); border: 2px solid rgba(255, 255, 255, 0.3); - color: var(--text-white); - padding: var(--spacing-md) var(--spacing-lg); - border-radius: var(--border-radius); + color: #ffffff; + padding: 1rem 1.5rem; + border-radius: 8px; cursor: pointer; - font-size: var(--font-sm); + font-size: 0.875rem; font-weight: 500; transition: all 0.3s ease; backdrop-filter: blur(10px); min-width: 80px; + font-family: inherit; } .panorama-btn:hover { - background: var(--primary-color); - border-color: var(--primary-color); + background: #ff8800; + border-color: #ff8800; transform: translateY(-3px) scale(1.05); box-shadow: 0 8px 20px rgba(255, 136, 0, 0.4); } .panorama-btn.active { - background: var(--primary-color); - border-color: var(--primary-color); + background: #ff8800; + border-color: #ff8800; box-shadow: 0 4px 15px rgba(255, 136, 0, 0.3); } .panorama-btn i { - font-size: var(--font-lg); + font-size: 1.1rem; } .panorama-btn span { - font-size: var(--font-xs); + font-size: 0.75rem; text-align: center; + white-space: nowrap; } /* 예쁜 X 버튼 */ .panorama-modal-close { position: absolute; - top: var(--spacing-xl); - right: var(--spacing-xl); + top: 2rem; + right: 2rem; background: rgba(0, 0, 0, 0.8); - color: var(--text-white); + color: #ffffff; width: 50px; height: 50px; border-radius: 50%; @@ -575,8 +600,8 @@ } .panorama-modal-close:hover { - background: var(--primary-color); - border-color: var(--primary-color); + background: #ff8800; + border-color: #ff8800; transform: scale(1.1) rotate(180deg); box-shadow: 0 8px 20px rgba(255, 136, 0, 0.4); } @@ -620,9 +645,9 @@ left: 50%; transform: translate(-50%, -50%); background: rgba(0, 0, 0, 0.95); - color: var(--text-white); - padding: var(--spacing-2xl); - border-radius: var(--border-radius-lg); + color: #ffffff; + padding: 3rem; + border-radius: 12px; max-width: 500px; width: 90%; z-index: 200; @@ -633,9 +658,9 @@ } .panorama-help-panel h3 { - color: var(--primary-color); - font-size: var(--font-xl); - margin: 0 0 var(--spacing-lg) 0; + color: #ff8800; + font-size: 1.25rem; + margin: 0 0 1.5rem 0; text-align: center; font-weight: 700; } @@ -643,28 +668,29 @@ .help-content { display: flex; flex-direction: column; - gap: var(--spacing-md); + gap: 1rem; } .help-item { display: flex; align-items: center; - gap: var(--spacing-md); - padding: var(--spacing-sm); + gap: 1rem; + padding: 0.5rem; background: rgba(255, 255, 255, 0.05); - border-radius: var(--border-radius); - border-left: 3px solid var(--primary-color); + border-radius: 8px; + border-left: 3px solid #ff8800; } .help-item i { - color: var(--primary-color); - font-size: var(--font-lg); + color: #ff8800; + font-size: 1.1rem; width: 24px; text-align: center; + flex-shrink: 0; } .help-item span { - font-size: var(--font-base); + font-size: 1rem; line-height: 1.5; } @@ -698,6 +724,25 @@ /* 모바일 최적화 */ @media (max-width: 768px) { + .panorama-section { + padding: 3rem 0; + margin: 3rem 0; + } + + .panorama-section h2 { + font-size: 2rem; + } + + .panorama-grid { + grid-template-columns: 1fr; + gap: 1.5rem; + padding: 0 15px; + } + + .panorama-container { + height: 250px; + } + .panorama-modal-close { width: 44px; height: 44px; @@ -709,6 +754,23 @@ .panorama-modal-close .close-icon::after { width: 16px; } + + .panorama-modal-controls { + padding: 1.5rem; + flex-direction: column; + gap: 1rem; + align-items: center; + } + + .panorama-control-buttons { + gap: 1rem; + justify-content: center; + } + + .panorama-btn { + min-width: 70px; + padding: 0.75rem 1rem; + } } /* 반응형 디자인 */ @@ -827,30 +889,13 @@ height: 85vh; } - .panorama-modal-controls { - padding: var(--spacing-lg); - flex-direction: column; - gap: var(--spacing-md); - align-items: center; - } - .panorama-modal-title { - font-size: var(--font-lg); + font-size: 1.1rem; text-align: center; } - .panorama-control-buttons { - gap: var(--spacing-sm); - justify-content: center; - } - - .panorama-btn { - min-width: 70px; - padding: var(--spacing-sm) var(--spacing-md); - } - .panorama-btn i { - font-size: var(--font-base); + font-size: 1rem; } .panorama-btn span { @@ -872,20 +917,20 @@ .panorama-help-panel { width: 95%; - padding: var(--spacing-lg); + padding: 1.5rem; max-width: none; } .panorama-help-panel h3 { - font-size: var(--font-lg); + font-size: 1.1rem; } .help-item { - gap: var(--spacing-sm); - padding: var(--spacing-xs); + gap: 0.5rem; + padding: 0.25rem; } .help-item span { - font-size: var(--font-sm); + font-size: 0.875rem; } } \ No newline at end of file