admin.scss 29 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300
  1. @charset "UTF-8";
  2. @font-face {
  3. font-family: 'AudiType';
  4. src: url('/fonts/AudiTypeVF.woff2') format('woff2-variations');
  5. font-display: swap;
  6. font-style: normal;
  7. font-stretch: 130%;
  8. }
  9. // Utility classes for padding and margin (1-100)
  10. @for $i from 1 through 200 {
  11. // Padding
  12. .pt--#{$i} { padding-top: #{$i}px !important; }
  13. .pr--#{$i} { padding-right: #{$i}px !important; }
  14. .pb--#{$i} { padding-bottom: #{$i}px !important; }
  15. .pl--#{$i} { padding-left: #{$i}px !important; }
  16. .p--#{$i} { padding: #{$i}px !important; }
  17. // Margin
  18. .mt--#{$i} { margin-top: #{$i}px !important; }
  19. .mr--#{$i} { margin-right: #{$i}px !important; }
  20. .mb--#{$i} { margin-bottom: #{$i}px !important; }
  21. .ml--#{$i} { margin-left: #{$i}px !important; }
  22. .m--#{$i} { margin: #{$i}px !important; }
  23. }
  24. //풀사이즈 레이아웃 구성
  25. .detail--container--full{
  26. }
  27. /*=================================================
  28. |컴포넌트 별 css
  29. |START
  30. =================================================*/
  31. //풀사이즈 배너 텍스트1 형
  32. .img--section--full{
  33. width:100%;
  34. position: relative;
  35. &[data-type="cover"] {
  36. >div {
  37. position: relative;
  38. height:100vh;
  39. overflow: hidden;
  40. }
  41. img{
  42. object-fit: cover;
  43. height:auto;
  44. position: absolute;
  45. top:50%;
  46. transform: translateY(-50%);
  47. }
  48. }
  49. &:before{
  50. content:'';
  51. display: block;
  52. width:100%;
  53. height:100%;
  54. position: absolute;
  55. z-index: 2;
  56. pointer-events: none;
  57. inset: 0px;
  58. z-index: 1;
  59. background: linear-gradient(rgba(0, 0, 0, 0) 46.66%, rgb(0, 0, 0) 100%);
  60. }
  61. img{
  62. width:100%;
  63. max-width:100%;
  64. height:100vh;
  65. }
  66. .alt--text{
  67. color: rgb(252, 252, 253);
  68. letter-spacing: 0px;
  69. font-weight: 400;
  70. text-decoration: none;
  71. font-size: 28px;
  72. line-height: 40px;
  73. position: absolute;
  74. bottom:40px;
  75. left:0px;
  76. overflow: hidden;
  77. padding: 0 96px;
  78. white-space: pre-wrap;
  79. z-index: 2;
  80. }
  81. }
  82. //풀사이즈 패럴렉스 1형
  83. .prallax--banner--wrapper{
  84. position: relative;
  85. overflow: hidden;
  86. height:1000px;
  87. .prallax--banner{
  88. position: absolute;
  89. width: 100%;
  90. height: 120%;
  91. transform: translate3d(0, 0, 0); // 초기값 GPU 레이어 생성
  92. -webkit-transform: translate3d(0, 0, 0);
  93. backface-visibility: hidden;
  94. -webkit-backface-visibility: hidden;
  95. //perspective: 1000px;
  96. //-webkit-perspective: 1000px;
  97. position: absolute;
  98. top: -17%;
  99. left: 50%;
  100. will-change: transform;
  101. backface-visibility: hidden;
  102. picture {
  103. width: 100%;
  104. height: 100%;
  105. display: block;
  106. }
  107. img {
  108. width: 100%;
  109. height: 100%;
  110. object-fit: cover;
  111. object-position: center;
  112. transform: translateZ(0); // GPU 가속
  113. -webkit-transform: translateZ(0);
  114. }
  115. }
  116. .text--box--wrapper{
  117. position: absolute;
  118. backface-visibility: hidden;
  119. -webkit-backface-visibility: hidden;
  120. width: 100%;
  121. top:147px;
  122. left: 0px;
  123. z-index: 1;
  124. will-change: transform, opacity;
  125. transform: translate3d(0, 0, 0); // 초기값 GPU 레이어 생성
  126. -webkit-transform: translate3d(0, 0, 0);
  127. display: flex;
  128. -webkit-box-pack: center;
  129. justify-content: center;
  130. transition: opacity 0.1s ease-out;
  131. perspective: 1000px;
  132. -webkit-perspective: 1000px;
  133. .text--container{
  134. max-width:50%;
  135. position: relative;
  136. box-sizing: border-box;
  137. background: linear-gradient(134deg, rgb(44, 52, 63) 0%, rgb(35, 42, 52) 100%);
  138. backdrop-filter: blur(60px);
  139. display: flex;
  140. flex-direction: column;
  141. gap: 24px;
  142. flex-shrink: 0;
  143. flex-basis: 86%;
  144. margin: 88px auto 0 auto;
  145. padding: 40px;
  146. border-radius: 20px;
  147. left: 4%;
  148. flex-basis: 44%;
  149. h2{
  150. margin: 0px;
  151. color: rgb(252, 252, 253);
  152. letter-spacing: 0px;
  153. font-weight: 400;
  154. text-decoration: none;
  155. font-size: 24px;
  156. line-height: 36px;
  157. font-stretch: 130%;
  158. }
  159. p{
  160. margin: 0px;
  161. color: rgba(252, 252, 253, 0.7);
  162. font-family: AudiType, sans-serif;
  163. letter-spacing: 0px;
  164. font-weight: 400;
  165. text-decoration: none;
  166. font-size: 16px;
  167. line-height: 24px;
  168. font-stretch: 105%;
  169. }
  170. a{
  171. transition-timing-function:
  172. cubic-bezier(0.75, 0.02, 0.5, 1);
  173. transition-duration: 250ms;
  174. transition-property: color, text-decoration-color;
  175. display: inline-flex ;
  176. -webkit-box-align: center;
  177. align-items: center;
  178. font-family: AudiType, sans-serif;
  179. letter-spacing: 0px;
  180. font-weight: 400;
  181. text-decoration: underline 1px rgb(252, 252, 253);
  182. font-size: 16px;
  183. line-height: 24px;
  184. font-stretch: 105%;
  185. color: rgb(252, 252, 253);
  186. box-sizing: border-box;
  187. text-underline-offset: 7px;
  188. padding-bottom: 2px;
  189. min-height: 24px;
  190. }
  191. }
  192. }
  193. }
  194. //Swiper 배너 컴포넌트 (30% + 70% 레이아웃)
  195. .swiper--banner--wrapper {
  196. width: 100%;
  197. padding: 40px 96px;
  198. &[data-fit="contain"]{
  199. .swiper--banner--container{
  200. .swiper--banner--section{
  201. .swiper--container{
  202. .swiper-slide{
  203. .slide--image{
  204. img{
  205. object-fit: contain;
  206. }
  207. }
  208. }
  209. }
  210. }
  211. }
  212. }
  213. &[data-type="vertical"]{
  214. padding:0px;
  215. .swiper--banner--container{
  216. flex-direction: column-reverse;
  217. height:auto;
  218. .swiper--controls--section{
  219. flex-direction: row-reverse;
  220. @media(min-width:768px){
  221. padding: 0px 96px;
  222. }
  223. @media(min-width:1024px){
  224. padding: 0px 96px;
  225. }
  226. @media(min-width:1440px){
  227. padding: 0px 96px;
  228. }
  229. @media(min-width:1920px){
  230. padding:24px 96px;
  231. }
  232. .text--content{
  233. width:100%;
  234. .main--title{
  235. margin: 0px;
  236. color: rgb(252, 252, 253);
  237. font-family: AudiType, sans-serif;
  238. letter-spacing: 0px;
  239. font-weight: 400;
  240. text-decoration: none;
  241. font-size: 20px;
  242. line-height: 32px;
  243. font-stretch: 130%;
  244. @media(min-width:1440px){
  245. font-size: 24px;
  246. line-height: 36px;
  247. }
  248. }
  249. .sub--title{
  250. margin: 0px;
  251. color: rgba(252, 252, 253, 0.7);
  252. letter-spacing: 0px;
  253. font-weight: 400;
  254. text-decoration: none;
  255. font-size: 16px;
  256. line-height: 24px;
  257. font-stretch: 105%;
  258. }
  259. }
  260. }
  261. > div{
  262. width:100%;
  263. max-height:100vh;
  264. .swiper--container {
  265. .swiper-slide {
  266. .slide--image {
  267. border-radius: 0px;
  268. }
  269. }
  270. }
  271. }
  272. }
  273. }
  274. .swiper--banner--container {
  275. max-width: 1920px;
  276. height: 70vh;
  277. margin: 0 auto;
  278. display: flex;
  279. min-height: 600px;
  280. // 30% 영역: 컨트롤 및 텍스트
  281. .swiper--controls--section {
  282. width: 30%;
  283. padding: 40px;
  284. display: flex;
  285. flex-direction: column;
  286. justify-content: flex-end;
  287. .controls--top {
  288. margin-bottom: 40px;
  289. .pagination--nav--wrapper {
  290. display: flex;
  291. align-items: flex-start;
  292. justify-content: flex-start;
  293. flex-direction: column;
  294. gap: 20px;
  295. .swiper-pagination {
  296. position: relative;
  297. width: auto;
  298. display: flex;
  299. justify-content: center;
  300. align-items: center;
  301. gap: 12px;
  302. .swiper-pagination-bullet {
  303. width: 24px;
  304. height: 24px;
  305. background: transparent;
  306. border-radius: 50%;
  307. color: rgba(255, 255, 255, 0.6);
  308. font-size: 14px;
  309. font-weight: 400;
  310. display: flex;
  311. align-items: center;
  312. justify-content: center;
  313. cursor: pointer;
  314. transition: all 0.3s ease;
  315. opacity: 1;
  316. margin:0px;
  317. &:hover {
  318. background:rgba(252,252,253,.3)!important;
  319. color: rgba(255, 255, 255, 0.8);
  320. }
  321. &.swiper-pagination-bullet-active {
  322. background: transparent;
  323. color: #fff;
  324. font-weight: 600;
  325. }
  326. }
  327. }
  328. .navigation--buttons {
  329. display: flex;
  330. align-items: center;
  331. justify-content: center;
  332. gap: 16px;
  333. .swiper-pagination{
  334. top:0px;
  335. bottom:0px;
  336. }
  337. .swiper-button-prev{
  338. background: url(/img/ico--back--s.svg) no-repeat center;
  339. }
  340. .swiper-button-next{
  341. background: url(/img/ico--forward--s.svg) no-repeat center;
  342. }
  343. .swiper-button-prev,
  344. .swiper-button-next {
  345. position: relative;
  346. width: 24px;
  347. height: 24px;
  348. border-radius: 50%;
  349. color: white;
  350. margin: 0;
  351. transition: all 0.3s ease;
  352. cursor: pointer;
  353. &:hover{
  354. background:rgba(252,252,253,.3) ;
  355. }
  356. &.swiper-button-disabled {
  357. opacity: 0.3;
  358. cursor: not-allowed;
  359. &:hover {
  360. transform: none;
  361. }
  362. }
  363. }
  364. }
  365. }
  366. }
  367. .text--content {
  368. text-align: center;
  369. height:60%;
  370. .text--slider {
  371. position: relative;
  372. overflow: hidden;
  373. height:100%;
  374. .text--slide {
  375. position: absolute;
  376. top: 0;
  377. left: 0;
  378. width: 100%;
  379. opacity: 0;
  380. transform: translateX(-100%);
  381. transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  382. text-align: left;
  383. visibility: hidden;
  384. &.active {
  385. opacity: 1;
  386. transform: translateX(0);
  387. visibility: visible;
  388. position: relative; // 활성 슬라이드는 relative로 높이 확보
  389. }
  390. // 이전 슬라이드는 오른쪽으로 사라짐
  391. &:not(.active) {
  392. transform: translateX(-100%);
  393. position: absolute; // 비활성 슬라이드는 absolute로 겹침
  394. }
  395. }
  396. }
  397. .main--title {
  398. margin:0px;
  399. color: rgb(252, 252, 253);
  400. letter-spacing: 0px;
  401. font-weight: 400;
  402. text-decoration: none;
  403. font-size: 20px;
  404. line-height: 32px;
  405. font-stretch: 130%;
  406. padding-bottom:12px;
  407. }
  408. .sub--title {
  409. margin: 0px;
  410. color: rgba(252, 252, 253, 0.7);
  411. letter-spacing: 0px;
  412. font-weight: 400;
  413. text-decoration: none;
  414. font-size: 16px;
  415. line-height: 24px;
  416. font-stretch: 105%;
  417. }
  418. .desc--title{
  419. margin-top:25px;
  420. color: rgba(252, 252, 253, 0.7);
  421. letter-spacing: 0px;
  422. font-weight: 400;
  423. text-decoration: none;
  424. font-size: 15px;
  425. line-height: 24px;
  426. font-stretch: 105%;
  427. }
  428. .notice--text {
  429. margin-top: 40px;
  430. padding-top: 20px;
  431. // border-top: 1px solid rgba(255, 255, 255, 0.1);
  432. text-align: left;
  433. p {
  434. margin: 0;
  435. color: rgba(252, 252, 253, 0.5);
  436. font-size: 14px;
  437. line-height: 20px;
  438. font-style: italic;
  439. }
  440. }
  441. }
  442. }
  443. // 70% 영역: 단일 배너
  444. .swiper--banner--section {
  445. width: 70%;
  446. position: relative;
  447. overflow: hidden;
  448. .swiper--container {
  449. width: 100%;
  450. height: 100%;
  451. .swiper-slide {
  452. .slide--image {
  453. width: 100%;
  454. height: 100%;
  455. border-radius: 20px;
  456. overflow: hidden;
  457. img {
  458. width: 100%;
  459. height: 100%;
  460. max-height:100vh;
  461. object-fit: cover;
  462. object-position: center;
  463. transition: transform 0.8s ease;
  464. }
  465. }
  466. &.swiper-slide-active {
  467. .slide--image img {
  468. //transform: scale(1.02);
  469. }
  470. }
  471. }
  472. }
  473. }
  474. }
  475. // 반응형 처리
  476. @media (max-width: 1024px) {
  477. .swiper--banner--container {
  478. flex-direction: column;
  479. .swiper--controls--section {
  480. width: 100%;
  481. order: 2;
  482. padding: 30px 20px;
  483. }
  484. .swiper--banner--section {
  485. width: 100%;
  486. height: 400px;
  487. order: 1;
  488. }
  489. }
  490. }
  491. @media (max-width: 768px) {
  492. padding: 40px 0;
  493. .swiper--banner--container {
  494. .swiper--controls--section {
  495. padding: 20px;
  496. .text--content {
  497. .text--slider {
  498. height: 100px; // 모바일에서는 높이 조정
  499. }
  500. .main--title {
  501. font-size: 24px;
  502. line-height: 32px;
  503. }
  504. .sub--title {
  505. font-size: 16px;
  506. line-height: 22px;
  507. }
  508. }
  509. }
  510. .swiper--banner--section {
  511. height: 300px;
  512. }
  513. }
  514. }
  515. }
  516. .title--visual {
  517. position: relative;
  518. width: 100%;
  519. overflow: hidden;
  520. padding:40px 0px;
  521. &[data-type="middle"] {
  522. .title--visual--wrapper{
  523. max-width:100%;
  524. padding:0px 96px;
  525. .title--visual--content{
  526. h2{
  527. color: rgb(252, 252, 253);
  528. letter-spacing: 0px;
  529. font-weight: 400;
  530. text-decoration: none;
  531. font-size: 24px;
  532. line-height: 36px;
  533. font-stretch: 130%;
  534. @media (min-width: 1024px) {
  535. font-size: 28px;
  536. line-height: 40px;
  537. }
  538. @media (min-width: 1440px) {
  539. font-size: 32px;
  540. line-height: 44px;
  541. }
  542. @media (min-width: 1920px) {
  543. font-size: 36px;
  544. line-height: 52px;
  545. }
  546. }
  547. }
  548. }
  549. }
  550. // 테마별 스타일
  551. &[data-theme="dark"] {
  552. color: rgb(252, 252, 253);
  553. .title--description {
  554. color: rgba(252, 252, 253, 0.8);
  555. }
  556. }
  557. &[data-theme="light"] {
  558. background: rgb(252, 252, 253);
  559. color: #000;
  560. .title--description {
  561. color: rgba(0, 0, 0, 0.7);
  562. }
  563. }
  564. .title--visual--wrapper {
  565. margin: 0 auto;
  566. padding: 0 60px;
  567. align-content: center;
  568. box-sizing: content-box;
  569. display: grid;
  570. grid-template-columns: 100%;
  571. padding-bottom: 0px;
  572. padding-top: 0px;
  573. @media (min-width:1920px){
  574. margin: 0 auto;
  575. max-width:1248px;
  576. }
  577. @media (max-width: 1024px) {
  578. padding: 0 40px;
  579. }
  580. @media (max-width: 768px) {
  581. padding: 0 20px;
  582. }
  583. }
  584. .title--visual--content {
  585. margin: 0 auto;
  586. &[data-align="left"] {
  587. margin-left: 0;
  588. text-align: left;
  589. .title--main{
  590. text-align: left;
  591. }
  592. }
  593. &[data-align="center"] {
  594. text-align: center;
  595. }
  596. &[data-align="right"] {
  597. margin-right: 0;
  598. margin-left: auto;
  599. text-align: right;
  600. .title--main{
  601. text-align: right;
  602. }
  603. }
  604. // 애니메이션 상태
  605. &[data-animated="true"] {
  606. opacity: 0;
  607. transform: translateY(40px);
  608. transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  609. &.visible {
  610. opacity: 1;
  611. transform: translateY(0);
  612. }
  613. }
  614. }
  615. .title--main {
  616. margin: 0 0 24px 0;
  617. color: rgb(252, 252, 253);
  618. letter-spacing: 0px;
  619. font-weight: 400;
  620. text-decoration: none;
  621. font-size: 36px;
  622. line-height: 52px;
  623. font-stretch: 130%;
  624. overflow-wrap: break-word;
  625. text-align: center;
  626. @media (max-width: 1920px) {
  627. font-size: 72px;
  628. line-height: 100px;
  629. }
  630. @media (max-width: 1440px) {
  631. font-size: 60px;
  632. line-height: 84px;
  633. }
  634. @media (max-width: 1024px) {
  635. font-size: 52px;
  636. line-height: 76px;
  637. }
  638. @media (max-width: 768px) {
  639. font-size: 44px;
  640. line-height: 60px;
  641. }
  642. }
  643. .title--description {
  644. margin: 0;
  645. color: rgba(252, 252, 253, 0.7);
  646. letter-spacing: 0px;
  647. font-weight: 400;
  648. text-decoration: none;
  649. font-size: 16px;
  650. line-height: 24px;
  651. font-stretch: 105%;
  652. }
  653. .title--additional {
  654. margin-top: 40px;
  655. @media (max-width: 768px) {
  656. margin-top: 32px;
  657. }
  658. }
  659. }
  660. .caution--text--wrapper{
  661. padding:120px 96px;
  662. p{
  663. margin: 0 0 26px 0;
  664. color: rgba(252, 252, 253, 0.7);
  665. font-family: AudiType, sans-serif;
  666. letter-spacing: 0px;
  667. font-weight: 400;
  668. text-decoration: none;
  669. font-size: 16px;
  670. line-height: 24px;
  671. font-stretch: 105%;
  672. }
  673. }
  674. /*=================================================
  675. |컴포넌트 별 css
  676. |END
  677. =================================================*/
  678. // 로그인 폼 기본 디폴트 디자인
  679. .admin--login {
  680. min-height: 100vh;
  681. background: #000000;
  682. display: flex;
  683. align-items: center;
  684. justify-content: center;
  685. font-family: 'AudiType', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  686. .login--container {
  687. width: 100%;
  688. max-width: 480px;
  689. padding: 20px;
  690. }
  691. .login--box {
  692. background: #0a0a0a;
  693. border: 1px solid rgba(255, 255, 255, 0.1);
  694. border-radius: 12px;
  695. padding: 60px 40px;
  696. box-shadow: 0 20px 60px rgba(0, 0, 0, 0.8);
  697. }
  698. .login--logo {
  699. text-align: center;
  700. margin-bottom: 50px;
  701. h1 {
  702. font-size: 48px;
  703. font-weight: 700;
  704. color: #ffffff;
  705. letter-spacing: 8px;
  706. margin: 0;
  707. font-stretch: 130%;
  708. }
  709. .subtitle {
  710. color: rgba(255, 255, 255, 0.4);
  711. font-size: 14px;
  712. text-transform: uppercase;
  713. letter-spacing: 3px;
  714. margin-top: 10px;
  715. }
  716. }
  717. .login--form {
  718. .form--group {
  719. margin-bottom: 24px;
  720. }
  721. .form--input {
  722. width: 100%;
  723. height: 52px;
  724. background: #000000;
  725. border: 1px solid rgba(255, 255, 255, 0.15);
  726. border-radius: 8px;
  727. padding: 0 20px;
  728. font-size: 15px;
  729. color: #ffffff;
  730. transition: all 0.3s ease;
  731. &::placeholder {
  732. color: rgba(255, 255, 255, 0.6);
  733. }
  734. &:focus {
  735. outline: none;
  736. border-color: rgba(255, 255, 255, 0.4);
  737. background: rgba(255, 255, 255, 0.02);
  738. }
  739. &:hover {
  740. border-color: rgba(255, 255, 255, 0.25);
  741. }
  742. }
  743. .form--options {
  744. display: flex;
  745. justify-content: space-between;
  746. align-items: center;
  747. margin-bottom: 32px;
  748. .checkbox--label {
  749. display: flex;
  750. align-items: center;
  751. cursor: pointer;
  752. color: rgba(255, 255, 255, 0.6);
  753. font-size: 14px;
  754. input[type="checkbox"] {
  755. width: 18px;
  756. height: 18px;
  757. margin-right: 10px;
  758. background: #000000;
  759. border: 1px solid rgba(255, 255, 255, 0.3);
  760. border-radius: 4px;
  761. cursor: pointer;
  762. accent-color: #ffffff;
  763. }
  764. &:hover {
  765. color: rgba(255, 255, 255, 0.8);
  766. }
  767. }
  768. .forgot--password {
  769. color: rgba(255, 255, 255, 0.6);
  770. font-size: 14px;
  771. text-decoration: none;
  772. transition: color 0.3s ease;
  773. &:hover {
  774. color: #ffffff;
  775. }
  776. }
  777. }
  778. .login--button {
  779. width: 100%;
  780. height: 52px;
  781. background: #ffffff;
  782. color: #000000;
  783. border: none;
  784. border-radius: 8px;
  785. font-size: 16px;
  786. font-weight: 600;
  787. letter-spacing: 1px;
  788. cursor: pointer;
  789. transition: all 0.3s ease;
  790. &:hover {
  791. background: rgba(255, 255, 255, 0.9);
  792. transform: translateY(-2px);
  793. box-shadow: 0 10px 30px rgba(255, 255, 255, 0.2);
  794. }
  795. &:active {
  796. transform: translateY(0);
  797. }
  798. }
  799. }
  800. .login--footer {
  801. text-align: center;
  802. margin-top: 40px;
  803. p {
  804. color: rgba(255, 255, 255, 0.3);
  805. font-size: 12px;
  806. letter-spacing: 0.5px;
  807. }
  808. }
  809. }
  810. //자세히 보기
  811. .more--detail--href{
  812. display: inline-flex;
  813. align-items: center;
  814. position: relative;
  815. letter-spacing: 0px;
  816. font-weight: 400;
  817. font-size: 14px;
  818. min-height:24px;
  819. &:after{
  820. content:'';
  821. display: block;
  822. width:calc(100% - 24px);
  823. height:1px;
  824. background: rgb(252, 252, 253);
  825. position: absolute;
  826. bottom:0px;
  827. left:0px;
  828. }
  829. .ico{
  830. width: 24px;
  831. height: 24px;
  832. background-image: url(/img/ico--arrow.svg);
  833. }
  834. }
  835. //탭 링크
  836. .text--tab--layout{
  837. display: flex;
  838. background: linear-gradient(134deg, rgb(44, 52, 63) 0%, rgb(35, 42, 52) 100%);
  839. @media(min-width:1440px){
  840. display: grid;
  841. grid-auto-flow: column;
  842. grid-template-columns: max-content 1fr auto;
  843. gap: 28px;
  844. width: 100%;
  845. box-sizing: border-box;
  846. overflow: hidden;
  847. }
  848. @media(min-width:1025px){
  849. padding-block:12px;
  850. }
  851. ul{
  852. display: flex;
  853. position: relative;
  854. padding-inline:96px;
  855. -webkit-box-align: center;
  856. align-items: center;
  857. -webkit-box-pack: justify;
  858. justify-content: space-between;
  859. li {
  860. &:first-child{
  861. a{
  862. margin-left:-12px;
  863. pointer-events: none;
  864. }
  865. }
  866. a{
  867. cursor: pointer;
  868. display: flex;
  869. -webkit-box-align: center;
  870. align-items: center;
  871. -webkit-box-pack: center;
  872. justify-content: center;
  873. text-decoration: none;
  874. border-radius: 10px;
  875. background: rgba(44, 52, 63, 0);
  876. box-shadow: rgba(219, 223, 230, 0) 0px 0px 0px 1px inset;
  877. outline-offset: -3px;
  878. box-sizing: border-box;
  879. transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1);
  880. transition-duration: 250ms;
  881. transition-property: color, background, box-shadow;
  882. min-height: 48px;
  883. min-width: 64px;
  884. color: rgba(252, 252, 253, 0.7);
  885. padding: 0px 16px;
  886. text-align: center;
  887. letter-spacing: 0px;
  888. font-weight: 400;
  889. text-decoration: none;
  890. font-size: 14px;
  891. line-height: 20px;
  892. font-stretch: 105%;
  893. &:hover{
  894. color:rgb(252,252,253);
  895. background-color: rgb(44,52,63);
  896. box-shadow: rgba(219, 223,230, .2) 0px 0px 0px 1px inset;
  897. }
  898. }
  899. }
  900. }
  901. }
  902. .inner--link--contents {
  903. width: 100%;
  904. padding: 40px 0;
  905. ul {
  906. list-style: none;
  907. margin: 0;
  908. padding: 0;
  909. display: flex;
  910. flex-wrap: wrap;
  911. gap: 24px;
  912. width: 100%;
  913. padding:0 96px;
  914. li {
  915. width:calc( (100% - 48px) / 3);
  916. --gradient-start: hsla(216, 20%, 17%, 1);
  917. --gradient-end: hsla(216, 21%, 12%, 1);
  918. transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1);
  919. transition-duration: 250ms;
  920. transition-property: --gradient-start, --gradient-end, box-shadow;
  921. padding:28px 16px;
  922. overflow: hidden;
  923. border-radius: 20px;
  924. border: none;
  925. cursor: pointer;
  926. box-shadow: rgb(44, 52, 63) 0px 0px 0px 1px inset;
  927. backdrop-filter: blur(40px);
  928. background: linear-gradient(180deg, var(--gradient-start) 0%, var(--gradient-end) 100%);
  929. display: flex;
  930. text-decoration: none;
  931. &:hover{
  932. --gradient-start: hsla(216, 18%, 21%, 1);
  933. --gradient-end: hsla(216, 18%, 21%, 1);
  934. box-shadow: rgb(42,57,64) 0px 0px 0px 1px inset;
  935. }
  936. a {
  937. display: inline-flex;
  938. align-items: center;
  939. color: rgba(252, 252, 253, 0.7);;
  940. letter-spacing: 0px;
  941. font-weight: 400;
  942. text-decoration: none;
  943. font-size: 12px;
  944. line-height: 24px;
  945. font-stretch: 105%;
  946. padding-left:40px;
  947. position: relative;
  948. width:100%;
  949. svg{
  950. position: absolute;
  951. top:50%;
  952. transform: translateY(-50%);
  953. right:0px;
  954. }
  955. }
  956. }
  957. }
  958. }
  959. .product--card {
  960. display: flex;
  961. gap: 40px;
  962. padding: 40px;
  963. border-radius: 24px;
  964. overflow: hidden;
  965. // 가로 레이아웃
  966. &[data-layout="horizontal"] {
  967. flex-direction: row;
  968. align-items: center;
  969. .product--card--thumb {
  970. flex: 0 0 40%;
  971. max-width: 600px;
  972. }
  973. .product--card--content {
  974. flex: 1;
  975. padding-left: 20px;
  976. }
  977. // 이미지 오른쪽 배치
  978. &[data-image-position="right"] {
  979. flex-direction: row-reverse;
  980. .product--card--content {
  981. padding-left: 0;
  982. padding-right: 20px;
  983. }
  984. }
  985. @media (max-width: 1024px) {
  986. flex-direction: column;
  987. .product--card--thumb {
  988. flex: 1;
  989. max-width: 100%;
  990. }
  991. .product--card--content {
  992. padding-left: 0;
  993. padding-right: 0;
  994. padding-top: 20px;
  995. }
  996. // 모바일에서는 이미지 위치 상관없이 세로 배치
  997. &[data-image-position="right"] {
  998. flex-direction: column;
  999. .product--card--content {
  1000. padding-right: 0;
  1001. padding-top: 20px;
  1002. }
  1003. }
  1004. }
  1005. }
  1006. // 세로 레이아웃
  1007. &[data-layout="vertical"] {
  1008. flex-direction: column;
  1009. max-width: 600px;
  1010. .product--card--thumb {
  1011. width: 100%;
  1012. }
  1013. .product--card--content {
  1014. padding-top: 24px;
  1015. }
  1016. }
  1017. .product--card--thumb {
  1018. border-radius: 16px;
  1019. overflow: hidden;
  1020. background: rgba(255, 255, 255, 0.05);
  1021. img {
  1022. width: 100%;
  1023. height: 100%;
  1024. object-fit: cover;
  1025. display: block;
  1026. transition: transform 0.6s ease;
  1027. }
  1028. &:hover img {
  1029. transform: scale(1.05);
  1030. }
  1031. }
  1032. .product--card--content {
  1033. display: flex;
  1034. flex-direction: column;
  1035. gap: 16px;
  1036. }
  1037. .product--card--title {
  1038. margin: 0px;
  1039. color: rgb(252, 252, 253);
  1040. letter-spacing: 0px;
  1041. font-weight: 400;
  1042. text-decoration: none;
  1043. font-size: 24px;
  1044. line-height: 36px;
  1045. font-stretch: 130%;
  1046. @media (min-width: 1024px) {
  1047. font-size: 28px;
  1048. line-height: 40px;
  1049. }
  1050. @media (min-width: 1440px) {
  1051. font-size: 32px;
  1052. line-height: 44px;
  1053. }
  1054. @media (min-width: 1920px) {
  1055. font-size: 36px;
  1056. line-height: 52px;
  1057. }
  1058. }
  1059. .product--card--subtitle {
  1060. margin: 0;
  1061. color: rgba(252, 252, 253, 0.8);
  1062. font-size: 20px;
  1063. line-height: 28px;
  1064. font-weight: 300;
  1065. @media (max-width: 768px) {
  1066. font-size: 18px;
  1067. line-height: 26px;
  1068. }
  1069. }
  1070. .product--card--description {
  1071. margin-top: 8px;
  1072. p {
  1073. margin: 0px;
  1074. color: rgba(252, 252, 253, 0.7);
  1075. letter-spacing: 0px;
  1076. font-weight: 400;
  1077. text-decoration: none;
  1078. font-size: 16px;
  1079. line-height: 24px;
  1080. font-stretch: 105%;
  1081. }
  1082. }
  1083. .product--card--actions {
  1084. margin-top: 24px;
  1085. display: flex;
  1086. gap: 16px;
  1087. flex-wrap: wrap;
  1088. .default--round--btn {
  1089. flex-direction: column;
  1090. -webkit-box-align: center;
  1091. align-items: center;
  1092. -webkit-box-pack: center;
  1093. justify-content: center;
  1094. transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1);
  1095. transition-duration: 250ms;
  1096. border-radius: 999px;
  1097. cursor: pointer;
  1098. display: inline-flex;
  1099. border: 0px;
  1100. letter-spacing: 0px;
  1101. font-weight: 400;
  1102. text-decoration: none;
  1103. font-size: 14px;
  1104. line-height: 20px;
  1105. font-stretch: 105%;
  1106. padding: 12px 24px;
  1107. min-height: 48px;
  1108. background-color: rgb(24, 29, 37);
  1109. color: rgb(252, 252, 253);
  1110. box-shadow: rgb(44, 52, 63) 0px 0px 0px 1px inset;
  1111. transition-property: color, box-shadow, background-color;
  1112. &:hover {
  1113. background: rgba(44,52,63);
  1114. box-shadow: rgba(219,223,230, .2) 0px 0px 0px 1px inset;
  1115. }
  1116. &:active {
  1117. transform: translateY(0);
  1118. }
  1119. }
  1120. }
  1121. @media (max-width: 768px) {
  1122. padding: 24px;
  1123. gap: 24px;
  1124. }
  1125. }