@charset "UTF-8"; :root { /* text - 텍스트 색상 */ --text-intro-base: #1b1810; --text-base: #131313; --text-revers: #fff; --text-primary: #3c3321; --text-secondary: #747474; --text-accent: #ff5c00; --text-myclass: #ffdf60; --text-main-primary: #4a4040; --text-main-secondary: #3a200d; --text-title-accent: #f5651d; --text-pick: #2b5045; --text-keyword-base: #c4c2c0; --text-keyword-primary: #fff; --text-keyword-secondary: #999999; --text-video-primary: #b6d5a7; --text-video-secondary: #ddd; --text-cate-primary: #edd8c2; --text-cate-secondary: #b6d5a7; --text-cate-tertiary: #e8cfe4; --text-comment-primary: #fff; --text-comment-secondary: #8d8d8d; --text-learning-base: #8d8888; --text-learning-primary: #ff5c00; --text-learning-secondary: #008c49; --text-card-category: #252525; --text-card-title-active: #ff7d33; --text-card-title-complete: #66ba92; --text-card-author: #d1cfcf; /* 배경 */ --bg-base: #e4ddcf; --bg-primary: #ece3d2; --bg-secondary: radial-gradient(93.89% 93.89% at 49.32% 6.11%, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.11) 86.06%, rgba(134, 114, 77, 0.2) 88.94%), linear-gradient(180deg, #f9f6f0 0%, #e6ddcc 100%); --bg-main-card: rgba(255, 255, 255, 0.6); --bg-intro-mask: #1b1810; --bg-intro: linear-gradient(180deg, #f9f5f2 0%, #fff 18.77%, #fff 41.8%, #ece8e4 100%); --bg-main: linear-gradient(90deg, #0f3025 0%, #194335 38%, #0b221b 87.51%, #0d231c 100%) top / 100% 114px no-repeat, #ece3d2; --bg-video: #1b1b1b; --bg-comment: #2a2a2a; --bg-nav: linear-gradient(90deg, #0f3025 0%, #194335 38%, #0b221b 87.51%, #0d231c 100%); --bg-nav-depth: #fff; --bg-nav-alerts: #ff2200; --bg-nav-alerts-hover: #188f6b; --bg-cate-primary: #ded7cf; --bg-cate-secondary: #d4decf; --bg-cate-tertiary: #e8cfe4; --bg-pick: linear-gradient(180deg, rgba(255, 255, 255, 0.8) 0%, #d5ede6 100%); --bg-gauge-base: #b4b4b4; --bg-gauge-primary: #ff5c00; --bg-search: #e4dbc9; --bg-keyword-base: rgba(230, 205, 177, 0.3); --bg-keyword-primary: #e47703; --bg-keyword-primary-hover: #e6cdb1; --bg-keyword-secondary: #786c60; --bg-keyword-secondary-hover: #dcd3c9; --bg-lecture-state: linear-gradient(270deg, #00ab66 0%, #058bb0 100%); --bg-lecture-progress-primary: rgba(3, 9, 7, 0.3); --bg-lecture-progress-secondary: #07855c; --bg-btn-base: #000; --bg-btn-primary: #ff5c00; --bg-btn-secondary: #1f1f1f; --bg-card: rgba(255, 255, 255, 0.6); --bg-card-hover-start: #ff6600; --bg-card-hover-end: rgba(255, 132, 0, 0.7); --bg-card-thumb-overlay: rgba(255, 255, 255, 0.3); --bg-card-shadow: rgba(217, 202, 190, 0.5); --bg-card-hover-shadow: rgba(198, 187, 177, 0.5); --bg-card-shadow-inner: rgba(0, 0, 0, 1); --bg-pick-shadow: rgba(166, 154, 97, 0.25); --bg-modal: rgba(0, 0, 0, 0.8); --bg-modal-content: #f6f1e9; --bg-modal-close-hover: #e00400; --bg-scrollbar-thumb: #D0D0D0; --bg-scrollbar-thumb-dark: #383838; --bg-scrollbar-track: #F3F3F3; --bg-scrollbar-thumb-light: rgba(255, 255, 255, 0.2); --bg-scrollbar-thumb-light-hover: rgba(255, 255, 255, 0.3); --bg-scrollbar-track-light: rgba(255, 255, 255, 0.05); --bg-video-gauge: #171717; --bg-video-gauge-fill: #ff6c19; --bg-video-gauge-border: rgba(0, 0, 0, 0.4); --bg-learning-line: #c6c3c3; --bg-learning-dot: #8d8888; --bg-learning-active: rgba(255, 92, 0, 0.2); --bg-learning-active-line: #ffad7f; --bg-learning-active-dot: #ff5c00; --bg-learning-complete: rgba(0, 140, 73, 0.2); --bg-learning-complete-line: #7fc5a4; --bg-learning-complete-dot: #008c49; --bg-chapter-current: #146b51; --bg-chapter-completed: #ba9a85; --bg-card-base: #7e7e7e; --bg-card-current: #1d9b75; --bg-card-current-border: #1f9b76; --bg-card-current-bg: #dbefe9; --bg-card-completed: #ab3d00; --bg-gauge-fill: #e25e00; --bg-shadow: #8a7d64; --bg-puzzle-family: #7ed29b; --bg-puzzle-hanmac: #ffccca; --bg-puzzle-value: #87a7d6; --bg-puzzle-company: #b49a65; --bg-piece-1: #1d375d; --bg-piece-2: #662a0d; --bg-piece-3: #5b4822; --bg-piece-4: #2a5338; --bg-circle-border: #a7790f; --bg-circle-start: rgba(127, 47, 0, 0.1); --bg-circle-end: rgba(167, 121, 15, 0.5); --bg-circle-dot: rgba(221, 144, 0, 0.6); --bg-circle-dot-hover: rgba(221, 144, 0, 0.8); --bg-circle-dot-stroke: rgba(221, 144, 0, 0.2); --bg-gradient-start: #ece3d2; --bg-gradient-end: #fff; --bg-learning-line-color: #edba8a; --bg-modal-header: #f04400; --bg-textarea: #2a2a2a; --bg-textarea-placeholder: rgba(255, 255, 255, 0.5); /* border */ --border-base: rgba(0, 0, 0, 0.05); --border-primary: #fff; --border-keyword-base: rgba(0, 0, 0, 0.05); --border-keyword-primary: rgba(255, 255, 255, 0.4); --border-keyword-primary-hover: rgba(0, 0, 0, 0.05); --border-keyword-secondary: rgba(255, 255, 255, 0.4); --border-keyword-secondary-hover: rgba(0, 0, 0, 0.1); --border-pick: rgba(255, 255, 255, 0.5); --border-video: rgba(255, 255, 255, 0.1); --border-btn: rgba(255, 255, 255, 0.2); --border-card: rgba(255, 255, 255, 0.8); --border-modal: #888; --border-comment-resizer: rgba(230, 227, 225, 0.1); /* drop */ --text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; --text-stroke: drop-shadow(0 0 0.5px #000); /* shadow */ --shadow-pagination: rgba(0, 0, 0, 0.4); --shadow-modal: rgba(0, 0, 0, 0.25); --shadow-card-drop: 0 4px 8px rgba(0, 0, 0, 0.2); --shadow-card-drop-small: 0 4px 2px rgba(0, 0, 0, 0.05); --shadow-gauge-inset: rgba(0, 0, 0, 0.3); --shadow-comment: 0 8px 22px 22px rgba(0, 0, 0, 0.8); } /* 페이드 전환 */ .fade-out { opacity: 0; transition: opacity 0.4s ease; } .fade-in { opacity: 1; transition: opacity 0.4s ease; } @keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } } @keyframes arrow-next { 0%, 100% { right: 72px; } 50% { right: 50px; } } @keyframes bounce { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-12px); } } @keyframes slideUp { to { opacity: 1; transform: translateY(0); } } @keyframes scroll-down { 0% { transform-origin: 50% 100%; transform: scaleY(1); } 50% { transform-origin: 50% 100%; transform: scaleY(0); } 50.1% { transform-origin: 50% 0; transform: scaleY(0); } to { transform-origin: 50% 0; transform: scaleY(1); } } @keyframes pulse { 0%, 100% { opacity: 0.2; } 50% { opacity: 0.4; } } @keyframes borderFadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } @keyframes borderPulse { 0%, 100% { border-color: #fff; box-shadow: 0 0 20px rgba(255, 255, 255, 0.4); } 50% { border-color: #fff; box-shadow: 0 0 30px rgba(255, 255, 255, 0.6); } } @font-face { font-family: "YeogiOttaeJalnan"; src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_four@1.2/JalnanOTF00.woff") format("woff"); font-weight: normal; font-display: swap; } .intro { background: var(--bg-intro); background-attachment: fixed; overflow: auto; } .intro .container { position: relative; top: 0; height: var(--window-inner-height); margin-top: 0; padding: 0; overflow: hidden; border: none; border-radius: 0; clip-path: none; background: var(--bg-intro); color: var(--text-intro-base); display: flex; align-items: center; justify-content: center; flex-direction: column; } .intro .text-ani { display: none; } .intro .text-ani:has(.welcome span.show), .intro .text-ani:has(.update-line span.show), .intro .text-ani:has(.card.show), .intro .text-ani.animating { display: block; } @media only screen and (max-width: 991px) { .intro .text-ani:has(.card.show) { display: flex; flex-direction: column; flex: 1 1 0; min-height: 0; width: 100%; } } .intro .text-area { min-height: 160px; margin-bottom: 34px; text-align: center; } .intro .text-area:has(.greeting.hidden, .update-text.hidden) { min-height: 0; margin-bottom: 0; } .intro .greeting { font-size: 36px; font-weight: 300; line-height: 1.2; } @media only screen and (min-width: 1024px) { .intro .greeting { height: 656px; } } @media only screen and (max-width: 1023px) { .intro .greeting { font-size: 2.8rem; min-height: 15.8rem; } .intro .greeting p.welcome>*:nth-child(5) { display: block; line-height: 0; } } .intro .name { font-weight: 500; } .intro .welcome span { display: inline-block; opacity: 0; transform: translateY(20px); } .intro .welcome span.show { animation: fadeInUp 0.4s forwards; } .intro .welcome em { font-weight: 500; } @media only screen and (max-width: 1023px) { .intro .welcome { margin-top: 2rem; } } .intro .update-text { text-align: center; } .intro .update-line { overflow: hidden; font-size: 36px; } @media only screen and (max-width: 1023px) { .intro .update-line { font-size: 2.8rem; } } @media only screen and (max-width: 1023px) { .intro .update-line:last-child { margin-top: 2rem; } } .intro .update-line.bold, .intro .update-line em { font-weight: 500; } .intro .update-line>span { display: inline-block; opacity: 0; transform: translateY(100%); } .intro .update-line>span.show { animation: slideUp 0.6s forwards; } .intro .cta-text { position: relative; width: 100vw; height: var(--window-inner-height); font-size: 42px; font-weight: 300; line-height: 1.2; text-align: center; } @media only screen and (max-width: 1023px) { .intro .cta-text { font-size: 2.8rem; } } .intro .cta-text>div { width: 100vw; height: var(--window-inner-height); display: flex; align-items: center; justify-content: center; flex-direction: column; } .intro .cta-text>div:not(.mask) { position: relative; z-index: 1; cursor: default; } .intro .cta-text>div:not(.mask) .text-section { opacity: 0; transform: translateY(20px); } .intro .cta-text>div:not(.mask) .text-section:has(.show) { background-image: url(../images/intro/promise.svg); background-position: bottom; background-size: 586px auto; background-repeat: no-repeat; animation: fadeInUp 0.5s forwards; } @media only screen and (max-width: 1023px) { .intro .cta-text>div:not(.mask) .text-section:has(.show) { background-size: 120% auto; } } .intro .cta-text>div:not(.mask) p { opacity: 0; transform: translateY(20px); } .intro .cta-text>div:not(.mask) p.show { animation: fadeInUp 0.5s forwards; } .intro .cta-text .text-section { height: 260px; translate: 0 -35%; opacity: 1; display: flex; align-items: center; justify-content: center; flex-direction: column; } @media only screen and (max-width: 1023px) { .intro .cta-text .text-section { width: calc(100% - 32px); max-width: 452px; height: 18rem; translate: 0 -40%; } } .intro .cta-text .text-section.show { animation: opacity 0.5s forwards; } .intro .cta-text em { font-weight: 500; } .intro .cta-btn { position: absolute; top: 50%; left: 50%; z-index: 99; width: calc(100% - 32px); max-width: 483px; height: 116px; padding: 22px 0; border: none; border-radius: 24px; background: radial-gradient(117.51% 77.94% at 48.87% 100%, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.3) 24.58%, rgba(255, 255, 255, 0) 100%), #ff8200; color: white; font-size: 36px; font-weight: bold; text-align: center; text-shadow: 0 2px 2px rgba(201, 121, 38, 0.5); opacity: 0; transform: translate(-50%, 25%) translateY(50px); transition: all 0.3s; } @media only screen and (max-width: 1023px) { .intro .cta-btn { width: calc(100% - 32px); height: 68px; padding: 0; font-size: 28px; } } @media only screen and (min-width: 992px) { .intro .cta-btn { box-shadow: 0 -4px 4px 0 #e18d36 inset, 4px 4px 12px -4px rgba(220, 196, 172, 0.85); } } .intro .cta-btn.show { opacity: 1; transform: translate(-50%, 25%) translateY(0); transition: all 0.3s linear; } .intro .cta-btn::after { content: " "; position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: 2px; box-sizing: border-box; background: linear-gradient(65deg, rgba(255, 255, 255, 0.6) 0%, transparent 100%) #ff8200; content: ""; display: block; position: absolute; inset: 0; -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; border-radius: inherit; } .intro .cta-btn .ico-arrow { position: absolute; top: 50%; right: 72px; display: inline-block; width: 24px; height: 32px; background-image: url(../images/ico/ico_arrow_next_dashed.svg); background-size: contain; background-repeat: no-repeat; background-position: center; filter: drop-shadow(0 2px 2px rgba(201, 121, 38, 0.5)); transform: translateY(-50%); animation: arrow-next 3s infinite ease-in-out; } .intro .mask { position: absolute; top: 0; left: 0; z-index: 10; width: 100%; height: 100%; min-height: 100%; background-color: var(--bg-intro-mask); color: rgba(0, 0, 0, 0.2); pointer-events: none; --size: 0px; --x: 50vw; --y: 50vh; -webkit-mask-image: url(../images/cursor.svg); -webkit-mask-origin: content-box; -webkit-mask-position: calc(var(--x) - var(--size) / 2) calc(var(--y) - var(--size) / 2), center; -webkit-mask-repeat: no-repeat; -webkit-mask-size: var(--size), contain; mask-image: url(../images/cursor.svg); mask-origin: content-box; mask-position: calc(var(--x) - var(--size) / 2) calc(var(--y) - var(--size) / 2), center; mask-repeat: no-repeat; mask-size: var(--size), contain; transition: -webkit-mask-size 0.2s linear; transition: mask-size 0.2s linear; transition: mask-size 0.2s linear, -webkit-mask-size 0.2s linear; } @media only screen and (max-width: 991px) { .intro .mask { -webkit-mask-image: none; mask-image: none; clip-path: circle(0% at 50% 50%); transition: clip-path 3.5s ease-out; } .intro .mask.expand { clip-path: circle(300% at 50% 50%); } } .intro .mask .text-section { background-image: url(../images/intro/promise_b.svg); background-position: bottom; background-size: auto; background-repeat: no-repeat; } @media only screen and (max-width: 1023px) { .intro .mask .text-section { background-size: 95% auto; } } .intro .mask .mask-text { color: #fff; } .intro .mask .mask-text em { font-style: normal; } .intro .content-area { margin-top: 34px; display: flex; align-items: center; justify-content: center; flex-direction: column; } @media only screen and (max-width: 991px) { .intro .content-area { flex: 1 1 0; min-height: 0; margin-top: 0; align-items: stretch; } } .intro .card { opacity: 0; transform: translateY(60px); transition: all 0.6s ease; background: white; border: 2px solid rgba(255, 255, 255, 0.8); border-radius: 0 0 12px 12px; box-shadow: 0 24px 24px 0 rgba(215, 209, 204, 0.5); text-align: center; display: flex; align-items: center; justify-content: center; flex-direction: column; } @media only screen and (min-width: 992px) { .intro .card { flex: 0 0 calc(50% - 12px); padding: 60px 32px 48px; } } @media only screen and (min-width: 1200px) { .intro .card { flex: 1 1 0; width: 340px; padding: 86px 22px 68px; } } @media only screen and (max-width: 991px) { .intro .card { flex: 1 1 0; min-height: 0; width: calc(100vw - 32px); padding: 0 24px; z-index: 9; transition-duration: 0.9s; display: flex; align-items: center; justify-content: center; flex-direction: column; box-shadow: 0 4px 12px rgba(215, 209, 204, 0.5); border-radius: 12px; } } .intro .card.show { opacity: 1; transform: translateY(0); } .intro .card-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; } @media only screen and (min-width: 1200px) { .intro .card-list { flex-wrap: nowrap; } } @media only screen and (max-width: 1023px) { .intro .card-list { gap: 2.4rem; } } @media only screen and (max-width: 991px) { .intro .card-list { flex-direction: column; flex-wrap: nowrap; flex: 1 1 0; min-height: var(--window-inner-height); gap: 8px; padding: 8px 16px; align-items: stretch; } } .intro .card-num { font-family: YeogiOttaeJalnan; font-size: 120px; font-weight: 400; line-height: 1; color: transparent; opacity: 0.1; background: linear-gradient(180deg, transparent 30%, #ffffff 80%) #1b1810; -webkit-background-clip: text; background-clip: text; } @media only screen and (max-width: 1023px) { .intro .card-num { font-size: 6rem; } } .intro .card-title { margin-top: -46px; margin-bottom: 42px; font-size: 32px; font-weight: 300; line-height: 1.2; } @media only screen and (max-width: 1023px) { .intro .card-title { font-size: 2.4rem; } } @media only screen and (max-width: 991px) { .intro .card-title { margin-top: -32px; margin-bottom: 0; } } .intro .card-desc { font-size: 24px; } @media only screen and (max-width: 1023px) { .intro .card-desc { font-size: 1.6rem; } } @media only screen and (max-width: 991px) { .intro .card-desc { display: none; } } .intro .card em { font-weight: 700; } .typing { opacity: 0; } .cursor { display: inline-block; width: 2px; height: 1.2em; margin-left: 2px; vertical-align: text-bottom; animation: blink 0.7s infinite; } .scroll-indicator { position: absolute; bottom: 0; left: 50%; display: flex; flex-direction: column; align-items: center; gap: 24px; transform: translateX(-50%); } .scroll-indicator.hidden { opacity: 0; pointer-events: none; } .scroll-indicator.sec2 .bar { height: 60px; } .scroll-indicator span { font-size: 16px; color: var(--text-intro-base); opacity: 0.8; } .scroll-indicator .bar { width: 2px; height: 110px; overflow: hidden; background-color: rgba(0, 0, 0, 0.3); transition: height 0.5s linear; } .scroll-indicator .bar::before { content: " "; display: block; width: 100%; height: 100%; border-radius: 0 0 4px 4px; background-color: #111; animation: scroll-down 2s infinite ease-in-out; }