@charset "UTF-8"; @import url("https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap"); /** * 반응형 폰트 크기 (responsive font) * @param {number} $min-px - 최소 폰트 크기 (px) * @param {number} $max-px - 최대 폰트 크기 (px) * @param {number} $min-vw - 최소 뷰포트 너비 (기본값: 375px) * @param {number} $max-vw - 최대 뷰포트 너비 (기본값: 1920px) */ /** * 박스 그림자 (box-shadow) * @param {number} $x - X 오프셋 (기본값: 0px) * @param {number} $y - Y 오프셋 (기본값: 3px) * @param {number} $blur - 블러 반경 (기본값: 6px) * @param {number} $spread - 확산 반경 (기본값: 0px) * @param {color} $color - 색상 (기본값: rgba(0, 0, 0, 0.25)) * @param {boolean} $important - !important 사용 여부 (기본값: false) */ /** * 텍스트 그림자(text-shadow) * @param {number} $x - X 오프셋 (기본값: 0px) * @param {number} $y - Y 오프셋 (기본값: 1px) * @param {number} $blur - 블러 반경 (기본값: 0px) * @param {color} $color - 색상 (기본값: rgba(0, 0, 0, 0.25)) * @param {boolean} $important - !important 사용 여부 (기본값: false) */ /** * 미디어 쿼리 mixin * @param {string|number} $width - 브레이크포인트 이름 또는 픽셀 값 * @param {string} $type - 'min' 또는 'max' * @example * @include mq('desktop') { ... } * @include mq(1920px) { ... } * @include mq('tablet', 'max') { ... } */ html { font-size: 10px; } html[lang=ko-KR], html[lang=ko] { font-family: "Noto Sans KR", sans-serif; } html[lang=en], html *[lang=en] { font-family: "Noto Sans KR", Arial, sans-serif, serif; } html[lang=en] body, html *[lang=en] body { font-size: 18px; font-weight: 400; } html body { font-size: 16px; font-weight: 400; line-height: 1.4; color: #000; letter-spacing: -0.04em; } /* ====================================================================== */ /* [Web Font] /* ====================================================================== */ /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ html { -webkit-text-size-adjust: 100%; } main { display: block; } pre { font-family: monospace, monospace; font-size: 1em; } abbr[title] { border-bottom: none; text-decoration: underline; -webkit-text-decoration: underline dotted; text-decoration: underline dotted; } b, strong { font-weight: bolder; } code, kbd, samp { font-family: monospace, monospace; font-size: 1em; } small { font-size: 80%; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } img { border-style: none; } button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; line-height: 1.15; margin: 0; } button, input { overflow: visible; } button, select { text-transform: none; } button, [type=button], [type=reset], [type=submit] { -webkit-appearance: button; } button::-moz-focus-inner, [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner { border-style: none; padding: 0; } button:-moz-focusring, [type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring { outline: 1px dotted ButtonText; } fieldset { padding: 0.35em 0.75em 0.625em; } legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal; } progress { vertical-align: baseline; } textarea { overflow: auto; } [type=checkbox], [type=radio] { box-sizing: border-box; padding: 0; } [type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button { height: auto; -webkit-appearance: none; appearance: none; margin: 0; } [type=search] { -webkit-appearance: textfield; outline-offset: -2px; } [type=search]::-webkit-search-decoration { -webkit-appearance: none; } ::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; } details { display: block; } summary { display: list-item; } template { display: none; } [hidden] { display: none; } /* reset */ html * { box-sizing: border-box; word-wrap: break-word; } body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, figure, legend, input, textarea, button, p, blockquote, th, td, form, fieldset, blockquote, iframe { margin: 0; padding: 0; -webkit-text-size-adjust: 100%; -moz-text-size-adjust: 100%; text-size-adjust: 100%; } article, aside, canvas, details, embed, figcaption, figure, footer, header, hgroup, menu, nav, section, summary { display: block; } command, datalist, keygen, mark, meter, progress, rp, rt, ruby, time, wbr { display: inline; } img { display: inline-block; vertical-align: top; max-width: 100%; border: 0; image-rendering: -moz-crisp-edges; /* firefox */ image-rendering: -o-crisp-edges; /* opera */ image-rendering: -webkit-optimize-contrast; /* chrome(비표준) */ image-rendering: crisp-edges; transform: translateZ(0); } fieldset { border: 0; } ul, ol, li { list-style: none; } pre { white-space: pre-wrap; } legend, caption { position: relative; clip: rect(0 0 0 0); clip-path: inset(50%); width: 1px; height: 1px; margin: -1px; overflow: hidden; border: 0; padding: 0; white-space: nowrap; clear: both; } a { color: inherit; cursor: pointer; background-color: transparent; } a:link { text-decoration: none; } a:hover, a:focus, a:active, a:visited { text-decoration: none; } em, i, address, cite { font-style: normal; font-weight: normal; } input, textarea, select, button, table { font-size: inherit; font-family: inherit; border: 0; background-color: transparent; } button, select { cursor: pointer; } textarea, input, select { border-radius: 0; border: 0; outline-color: -moz-use-text-color; outline-width: medium; } textarea { resize: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; } label { cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; user-select: none; } table { table-layout: fixed; border-collapse: collapse; border-spacing: 0; } th, td { border-collapse: collapse; } select::-ms-expand { display: none; } /* 스크롤바 스타일 */ ::-webkit-scrollbar { height: 10px; width: 10px; } ::-webkit-scrollbar-thumb { background-color: #aaa; border-radius: 8px; background-clip: padding-box; border: 2px solid transparent; } ::-webkit-scrollbar-track { background-color: transparent; } ::before, ::after { box-sizing: border-box; } /* clearfix */ .clearfix { /* IE 지원 방식 : *zoom: 1;*/ } .clearfix:before, .clearfix:after { content: ""; display: block; } .clearfix:after { clear: both; } /* hidden */ .blind { position: absolute; clip: rect(0 0 0 0); clip-path: inset(50%); width: 1px; height: 1px; margin: -1px; overflow: hidden; border: 0; padding: 0; white-space: nowrap; } .d-none { display: none !important; } [class*=gra] { position: relative; } [class*=gra]::before, [class*=gra]::after { content: ""; position: absolute; border-radius: inherit; pointer-events: none; } [class*=gra]::after { inset: 0; padding: 1px; -webkit-mask: var(--mask-contents); mask: var(--mask-contents); -webkit-mask-composite: xor; mask-composite: exclude; } .flex { display: flex; align-items: center; justify-content: center; } /* toggle btn*/ .toggle-area { position: relative; display: flex; padding: 6px; width: 172px; height: 48px; background: #e5dfd3; border: 1px solid #fff; border-radius: 50px; box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.2) inset; } .toggle-area input[type=radio] { display: none; } .toggle-area input[type=radio]:checked + label { color: white; filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.5)); text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.5), 1px -1px 0 rgba(0, 0, 0, 0.5), -1px 1px 0 rgba(0, 0, 0, 0.5), 1px 1px 0 rgba(0, 0, 0, 0.5); } .toggle-area input[type=radio]:checked:nth-of-type(2) ~ .toggle-slider { transform: translateX(100%); } .toggle-area label { flex: 1; text-align: center; cursor: pointer; transition: all 0.3s ease; z-index: 2; font-weight: 700; font-size: 16px; color: rgba(16, 16, 16, 0.8); display: flex; align-items: center; justify-content: center; } .toggle-slider { position: absolute; top: 4px; left: 4px; width: calc(50% - 4px); height: calc(100% - 8px); background: linear-gradient(179deg, #ff5c00 47.43%, #943600 99.56%); border-radius: 50px; transition: transform 0.3s ease; z-index: 1; box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, 0.2), 0 1px 2px 0 rgba(0, 0, 0, 0.2); } .toggle-slider::after { content: " "; display: block; width: 100%; height: 100%; background: linear-gradient(180deg, #ffb68e 0%, #cd6f3b 24%, #ffdbc8 50%, #682500 83%, #a04411 100%); 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; padding: 1px; } /* Modal */ .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6); z-index: 1000; align-items: center; justify-content: center; padding: 20px; } .modal.active { display: flex; } .modal-content { background: white; border-radius: 12px; width: 100%; max-width: 700px; max-height: 90vh; overflow-y: auto; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); } .modal-header { position: sticky; top: 0; padding: 0 24px; display: flex; justify-content: space-between; align-items: center; z-index: 10; } .modal-header h2 { font-size: 24px; color: #1f2937; } .modal-close { background: none; border: none; font-size: 32px; color: #000; cursor: pointer; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: all 0.2s; } .modal-close:hover { background: #f3f4f6; color: #4b5563; } .modal-loading { display: flex; justify-content: center; align-items: center; padding: 60px; } .modal .spinner { border: 3px solid #e5e7eb; border-top: 3px solid #2563eb; border-radius: 50%; width: 50px; height: 50px; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* media query */ /* @media all and (min-width: 3841px) { html { //font-size: 14px; } } // 3200px 초과 ~ 3840px: 4K 디스플레이 @media all and (min-width: 3201px) and (max-width: 3840px) { html { //font-size: 13px; } } // 2560px 초과 ~ 3200px: 매우 큰 데스크톱 @media all and (min-width: 2561px) and (max-width: 3200px) { html { //font-size: 12px; } } // 1920px 초과 ~ 2560px: 큰 데스크톱 @media all and (min-width: 1921px) and (max-width: 2560px) { html { //font-size: 11px; font-size: 10px; } } */ @media all and (min-width: 1024px) { html { font-size: 9px; } } @media all and (min-width: 1024px) and (max-width: 1920px) { html { font-size: 9px; } } /* // 1023px 이하: 태블릿 @media all and (max-width: 1023px) { html { font-size: 14px; } } // 767px 이하 @media all and (max-width: 767px) { html { font-size: 13px; } } // 639px 이하 @media all and (max-width: 639px) { html { font-size: 12px; } } // 479px 이하 @media all and (max-width: 479px) { html { font-size: 10px; } } // 359px 이하 @media all and (max-width: 359px) { html { font-size: 9px; } } // 319px 이하 @media all and (max-width: 319px) { html { font-size: 8px; } } */