@charset "UTF-8"; @font-face { font-family: 'AudiType'; src: url('/fonts/AudiTypeVF.woff2') format('woff2-variations'); font-display: swap; font-style: normal; font-stretch: 130%; } // Utility classes for padding and margin (1-100) @for $i from 1 through 200 { // Padding .pt--#{$i} { padding-top: #{$i}px !important; } .pr--#{$i} { padding-right: #{$i}px !important; } .pb--#{$i} { padding-bottom: #{$i}px !important; } .pl--#{$i} { padding-left: #{$i}px !important; } .p--#{$i} { padding: #{$i}px !important; } // Margin .mt--#{$i} { margin-top: #{$i}px !important; } .mr--#{$i} { margin-right: #{$i}px !important; } .mb--#{$i} { margin-bottom: #{$i}px !important; } .ml--#{$i} { margin-left: #{$i}px !important; } .m--#{$i} { margin: #{$i}px !important; } } //풀사이즈 레이아웃 구성 .detail--container--full{ } /*================================================= |컴포넌트 별 css |START =================================================*/ //풀사이즈 배너 텍스트1 형 .img--section--full{ width:100%; position: relative; &:before{ content:''; display: block; width:100%; height:100%; position: absolute; z-index: 2; pointer-events: none; inset: 0px; z-index: 1; background: linear-gradient(rgba(0, 0, 0, 0) 46.66%, rgb(0, 0, 0) 100%); } img{ width:100%; max-width:100%; height:100vh; } .alt--text{ color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 28px; line-height: 40px; position: absolute; bottom:40px; left:0px; overflow: hidden; padding: 0 96px; white-space: pre-wrap; z-index: 2; } } //풀사이즈 패럴렉스 1형 .prallax--banner--wrapper{ position: relative; overflow: hidden; height:1000px; .prallax--banner{ position: absolute; width: 100%; height: 120%; transform: translate3d(0, 0, 0); // 초기값 GPU 레이어 생성 -webkit-transform: translate3d(0, 0, 0); backface-visibility: hidden; -webkit-backface-visibility: hidden; //perspective: 1000px; //-webkit-perspective: 1000px; position: absolute; top: -17%; left: 50%; will-change: transform; backface-visibility: hidden; picture { width: 100%; height: 100%; display: block; } img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: translateZ(0); // GPU 가속 -webkit-transform: translateZ(0); } } .text--box--wrapper{ position: absolute; backface-visibility: hidden; -webkit-backface-visibility: hidden; width: 100%; top:147px; left: 0px; z-index: 1; will-change: transform, opacity; transform: translate3d(0, 0, 0); // 초기값 GPU 레이어 생성 -webkit-transform: translate3d(0, 0, 0); display: flex; -webkit-box-pack: center; justify-content: center; transition: opacity 0.1s ease-out; perspective: 1000px; -webkit-perspective: 1000px; .text--container{ max-width:50%; position: relative; box-sizing: border-box; background: linear-gradient(134deg, rgb(44, 52, 63) 0%, rgb(35, 42, 52) 100%); backdrop-filter: blur(60px); display: flex; flex-direction: column; gap: 24px; flex-shrink: 0; flex-basis: 86%; margin: 88px auto 0 auto; padding: 40px; border-radius: 20px; h2{ margin: 0px; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 24px; line-height: 36px; font-stretch: 130%; } p{ margin: 0px; color: rgba(252, 252, 253, 0.7); font-family: AudiType, sans-serif; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } a{ transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; transition-property: color, text-decoration-color; display: inline-flex ; -webkit-box-align: center; align-items: center; font-family: AudiType, sans-serif; letter-spacing: 0px; font-weight: 400; text-decoration: underline 1px rgb(252, 252, 253); font-size: 16px; line-height: 24px; font-stretch: 105%; color: rgb(252, 252, 253); box-sizing: border-box; text-underline-offset: 7px; padding-bottom: 2px; min-height: 24px; } } } } //Swiper 배너 컴포넌트 (30% + 70% 레이아웃) .swiper--banner--wrapper { width: 100%; padding: 40px 96px; background: #000; .swiper--banner--container { max-width: 1920px; height: 70vh; margin: 0 auto; display: flex; min-height: 600px; // 30% 영역: 컨트롤 및 텍스트 .swiper--controls--section { width: 30%; padding: 40px; display: flex; flex-direction: column; justify-content: center; .controls--top { margin-bottom: 40px; .pagination--nav--wrapper { display: flex; align-items: flex-start; justify-content: flex-start; flex-direction: column; gap: 20px; .swiper-pagination { position: relative; width: auto; display: flex; justify-content: center; align-items: center; gap: 12px; .swiper-pagination-bullet { width: 24px; height: 24px; background: rgba(255, 255, 255, 0.1); border-radius: 50%; color: rgba(255, 255, 255, 0.6); font-size: 14px; font-weight: 400; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; opacity: 1; &:hover { background:rgba(252,252,253,.3) ; color: rgba(255, 255, 255, 0.8); } &.swiper-pagination-bullet-active { background: transparent; color: #fff; font-weight: 600; } } } .navigation--buttons { display: flex; align-items: center; justify-content: center; gap: 16px; .swiper-pagination{ top:0px; bottom:0px; } .swiper-button-prev{ background: url(/img/ico--back--s.svg) no-repeat center; } .swiper-button-next{ background: url(/img/ico--forward--s.svg) no-repeat center; } .swiper-button-prev, .swiper-button-next { position: relative; width: 24px; height: 24px; border-radius: 50%; color: white; margin: 0; transition: all 0.3s ease; cursor: pointer; &:hover{ background:rgba(252,252,253,.3) ; } &.swiper-button-disabled { opacity: 0.3; cursor: not-allowed; &:hover { transform: none; } } } } } } .text--content { text-align: center; .text--slider { position: relative; overflow: hidden; height: 120px; // 고정 높이로 레이아웃 안정성 확보 .text--slide { position: absolute; top: 0; left: 0; width: 100%; opacity: 0; transform: translateX(-100%); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); text-align: left; &.active { opacity: 1; transform: translateX(0); } // 이전 슬라이드는 오른쪽으로 사라짐 &:not(.active) { transform: translateX(100%); } } } .main--title { margin:0px; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 20px; line-height: 32px; font-stretch: 130%; padding-bottom:12px; } .sub--title { margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } .notice--text { margin-top: 40px; padding-top: 20px; // border-top: 1px solid rgba(255, 255, 255, 0.1); text-align: left; p { margin: 0; color: rgba(252, 252, 253, 0.5); font-size: 14px; line-height: 20px; font-style: italic; } } } } // 70% 영역: 단일 배너 .swiper--banner--section { width: 70%; position: relative; overflow: hidden; .swiper--container { width: 100%; height: 100%; .swiper-slide { .slide--image { width: 100%; height: 100%; border-radius: 20px; overflow: hidden; img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 0.8s ease; } } &.swiper-slide-active { .slide--image img { transform: scale(1.02); } } } } } } // 반응형 처리 @media (max-width: 1024px) { .swiper--banner--container { flex-direction: column; .swiper--controls--section { width: 100%; order: 2; padding: 30px 20px; } .swiper--banner--section { width: 100%; height: 400px; order: 1; } } } @media (max-width: 768px) { padding: 40px 0; .swiper--banner--container { .swiper--controls--section { padding: 20px; .text--content { .text--slider { height: 100px; // 모바일에서는 높이 조정 } .main--title { font-size: 24px; line-height: 32px; } .sub--title { font-size: 16px; line-height: 22px; } } } .swiper--banner--section { height: 300px; } } } } /*================================================= |컴포넌트 별 css |END =================================================*/ // 로그인 폼 기본 디폴트 디자인 .admin--login { min-height: 100vh; background: #000000; display: flex; align-items: center; justify-content: center; font-family: 'AudiType', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; .login--container { width: 100%; max-width: 480px; padding: 20px; } .login--box { background: #0a0a0a; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 60px 40px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.8); } .login--logo { text-align: center; margin-bottom: 50px; h1 { font-size: 48px; font-weight: 700; color: #ffffff; letter-spacing: 8px; margin: 0; font-stretch: 130%; } .subtitle { color: rgba(255, 255, 255, 0.4); font-size: 14px; text-transform: uppercase; letter-spacing: 3px; margin-top: 10px; } } .login--form { .form--group { margin-bottom: 24px; } .form--input { width: 100%; height: 52px; background: #000000; border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 8px; padding: 0 20px; font-size: 15px; color: #ffffff; transition: all 0.3s ease; &::placeholder { color: rgba(255, 255, 255, 0.6); } &:focus { outline: none; border-color: rgba(255, 255, 255, 0.4); background: rgba(255, 255, 255, 0.02); } &:hover { border-color: rgba(255, 255, 255, 0.25); } } .form--options { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; .checkbox--label { display: flex; align-items: center; cursor: pointer; color: rgba(255, 255, 255, 0.6); font-size: 14px; input[type="checkbox"] { width: 18px; height: 18px; margin-right: 10px; background: #000000; border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 4px; cursor: pointer; accent-color: #ffffff; } &:hover { color: rgba(255, 255, 255, 0.8); } } .forgot--password { color: rgba(255, 255, 255, 0.6); font-size: 14px; text-decoration: none; transition: color 0.3s ease; &:hover { color: #ffffff; } } } .login--button { width: 100%; height: 52px; background: #ffffff; color: #000000; border: none; border-radius: 8px; font-size: 16px; font-weight: 600; letter-spacing: 1px; cursor: pointer; transition: all 0.3s ease; &:hover { background: rgba(255, 255, 255, 0.9); transform: translateY(-2px); box-shadow: 0 10px 30px rgba(255, 255, 255, 0.2); } &:active { transform: translateY(0); } } } .login--footer { text-align: center; margin-top: 40px; p { color: rgba(255, 255, 255, 0.3); font-size: 12px; letter-spacing: 0.5px; } } }