최초 커밋

This commit is contained in:
root
2026-07-23 16:15:57 +09:00
commit c8f5efb6b7
14652 changed files with 4812531 additions and 0 deletions
+716
View File
@@ -0,0 +1,716 @@
@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;
}
}
*/
File diff suppressed because it is too large Load Diff
@@ -0,0 +1 @@
<svg width="276" height="135" fill="none" xmlns="http://www.w3.org/2000/svg"><g opacity=".35" fill="#fff"><path d="M126.53 81.446c-8.872 3.213-13.546.174-15.62-2.074l-23.7 25.861c-20.014 21.67-44.027 30.023-62.261 22.833l94.655-102.422s9.409-11.67 20.237-19.243h-.009c.772-.56 1.067-1.096.814-2.12-.623-2.542-6.963-4.23-14.506-4.205h-.006l-18.839.046s-6.918-.28-11.502.009c-.95.06-13.033.576-17.116.917-4.17.347-14.935 2.055-17.951 2.804-19.212 4.766-37.584 13.223-51.85 28.224-18.766 19.727-28.538 43.07-27.516 65.73.751 16.687 7.433 31.356 18.812 41.299 10.673 9.328 24.061 14.213 38.528 14.21 3.708 0 7.49-.32 11.311-.969 18.899-3.21 37.371-14.093 53.448-31.503l34.266-37.384c-1.145-1.4-4.533-4.428-11.198-2.016l.003.003ZM3.648 96.758C2.914 80.456 10.38 63.053 24.874 47.96 42.026 30.1 56.046 24.79 69.238 24.018c6.21-.362 11.88.372 18.025 3.2L7.954 113.252c-2.545-4.766-4.032-10.375-4.306-16.493Z"/><path d="M275.378 54.144c-1.561-16.886-9.802-31.984-22.602-41.414-30.568-22.518-66.159-14.916-97.668 20.846l-35.901 38.842s.003.002.003.005l-3.006 3.261c.722.948 3.302 3.288 10.023.878 8.291-2.979 14.018.13 16.849 3.176l5.066-5.489 23.367-25.278.185-.206c23.991-27.283 46.853-33.238 67.942-17.701 7.607 5.603 12.522 14.788 13.486 25.196 1.443 15.58-5.413 33.39-20.661 48.817-21.345 21.591-41.852 28.048-62.603 21.388l30.783-33.94-16.451-15.34-45.999 50.718s-9.134 11.234-19.76 18.77c-1.155.693-1.627 1.22-1.326 2.437.606 2.449 6.593 4.102 13.845 4.177l.063.028 19.199-.009s16.314.06 19.76-.185c.656-.046 12.229-.96 14.51-1.148 2.037-.166 11.976-1.949 14.21-2.512 19.521-4.902 35.241-12.912 50.041-28.851 19.232-20.71 28.694-44.317 26.642-66.469l.003.003Z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

@@ -0,0 +1 @@
<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg" data-name="레이어_2"><g data-name="레이어_1" class="layer"><path d="M31.59 31.61c-1.81.72-2.76.04-3.19-.47l-4.83 5.85c-4.09 4.9-8.97 6.79-12.69 5.16l19.3-23.16s1.93-2.63 4.12-4.35c.16-.12.21-.25.18-.47-.14-.58-1.42-.97-2.96-.95l-3.83.02s-1.42-.07-2.35 0c-.19.02-2.67.12-3.48.21-.86.07-3.04.46-3.66.63-3.91 1.07-7.67 2.98-10.57 6.37-3.83 4.46-5.82 9.74-5.6 14.85.16 3.77 1.52 7.09 3.83 9.34 2.18 2.11 4.9 3.21 7.86 3.21.76 0 1.54-.07 2.32-.21 3.85-.72 7.61-3.18 10.9-7.13l6.98-8.44c-.23-.32-.91-1-2.28-.46h-.06zM6.55 35.07c-.16-3.69 1.36-7.62 4.32-11.03 3.5-4.04 6.34-5.23 9.05-5.41 1.26-.09 2.41.09 3.68.72L7.43 38.8c-.53-1.07-.82-2.35-.88-3.72v-.02z" style="fill:#ca2829"/><path d="M61.56 25.31c-.31-3.84-1.98-7.27-4.59-9.41-6.23-5.13-13.46-3.39-19.87 4.74l-7.3 8.83-.6.74c.14.21.66.75 2.04.19 1.69-.68 2.86.04 3.42.72l1.03-1.25 4.75-5.74.04-.05c4.88-6.2 9.53-7.57 13.83-4.02 1.56 1.28 2.55 3.37 2.74 5.72.29 3.55-1.11 7.58-4.2 11.1-4.34 4.92-8.52 6.37-12.72 4.86l6.27-7.72-3.35-3.49-9.36 11.53s-1.87 2.55-4.03 4.27c-.23.16-.33.28-.27.54.12.56 1.34.93 2.82.95h3.93s3.33.02 4.03-.04c.14-.02 2.49-.23 2.96-.26.41-.04 2.43-.44 2.9-.56 3.97-1.12 7.18-2.93 10.18-6.57 3.91-4.71 5.84-10.08 5.43-15.12l-.08.04z" style="fill:#263b7c"/></g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24" fill="#1f1f1f"><path d="m313-440 224 224-57 56-320-320 320-320 57 56-224 224h487v80H313Z"/></svg>

After

Width:  |  Height:  |  Size: 185 B

@@ -0,0 +1 @@
<svg width="100" height="100" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h100C80.15 4.572 65.782 29.834 52.14 53.82 38.652 77.534 25.874 100 9.21 100H0V0Z" fill="#000"/></svg>

After

Width:  |  Height:  |  Size: 192 B

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
"use strict";var scrollY,wrap,MOBILE_BREAKPOINT=1025;function syncHeight(){document.documentElement.style.setProperty("--window-inner-height","".concat(window.innerHeight,"px"))}function isMobile(){return window.innerWidth<MOBILE_BREAKPOINT}function bodyLock(){wrap?(scrollY=window.scrollY,document.documentElement.classList.add("is-locked"),document.documentElement.style.scrollBehavior="auto",wrap.style.top="-".concat(scrollY,"px")):console.warn("wrap element not found")}function bodyUnlock(){document.documentElement.classList.remove("is-locked"),void 0!==scrollY&&window.scrollTo(0,scrollY),wrap&&(wrap.style.top=""),document.documentElement.style.scrollBehavior=""}function popOpen(e){document.getElementById(e)?($("#"+e).fadeIn("fast"),bodyLock()):console.warn('Popup with id "'.concat(e,'" not found'))}function popClose(e){$(e).parents(".popup").fadeOut("fast"),bodyUnlock()}document.addEventListener("DOMContentLoaded",function(){(wrap=document.querySelector(".wrap"))?syncHeight():console.error("Wrap element not found")}),window.addEventListener("resize",function(){syncHeight()});var rootStyle=getComputedStyle(document.documentElement);function cssVar(e){return rootStyle.getPropertyValue(e).trim()}function fullScreen(){document.fullscreenElement?document.exitFullscreen().catch(function(e){console.log("전체화면 종료 실패:",e)}):document.documentElement.requestFullscreen().catch(function(e){console.log("전체화면 전환 실패:",e)})}
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long