@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Pinyon+Script&display=swap');
/* 
font-family: 'Instrument Serif', serif;
font-family: 'Pinyon Script', cursive;
*/

@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css");
/*
font-family: 'Pretendard';
*/



/* header */

.body__container {
    width: 100%;
    min-width: 1280px;
    height: 100%;
    position: relative;
    font-family: 'Pretendard';
    font-weight: 400;
    color: #009A3D;
    background: #FEF9EF;
}

header {
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    font-size: clamp(16px, 0.8vw, 20px);
    z-index: 1;
}

.header__container {
    padding: 40px 50px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 500;
    line-height: 120%;
}

.header-logo:hover {
    text-decoration: none;
    color: #009A3D;
}

.nav-menu {
    display: flex;
    gap: 50px;
}
.nav-menu:hover {
    text-decoration: none;
    color: #009A3D;
}

.nav-link::after {
    display: block;
    content: '';
    border-bottom: solid 2px #009A3D;  
    transform: scaleX(0);
    transform-origin: bottom right;
    transition: transform 250ms ease-in-out;
}

.nav-link:hover {
    text-decoration: none;
    color: #009A3D;
}

.nav-link:hover::after {
    transform: scaleX(1);
    transform-origin: bottom left;
}



/* lazy scroll */

html.lenis {
    height: auto;
  }
  
.lenis.lenis-smooth {
    scroll-behavior: auto;
}
  
.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}
  
.lenis.lenis-stopped {
    overflow: hidden;
}
  
.lenis.lenis-scrolling iframe {
    pointer-events: none;
}


/* scroll reveal */

.scroll-reveal {
    animation: scroll-reveal ease-in-out both;
    animation-timeline: view();
    animation-range: entry 50% cover 50%;
}

.scroll-reveal-end {
    animation: scroll-reveal ease-in-out both;
    animation-timeline: view();
    animation-range: entry 40% cover 40%;
}

@keyframes scroll-reveal {
    from {
        opacity: 0;
        transform: translateY(100px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* main */

.section {
    margin: 0 auto;
    padding: 120px 0; /* 추후 수정 요망 (봐서) */
}

.heading {
    font-family: 'Instrument Serif', serif;
}

.italic {
    font-style: italic;
}

.script {
    font-family: 'Pinyon Script', sans-serif;
    letter-spacing: 0;
}



/* hero-content */

.hero-section {
    overflow: hidden;
    margin-bottom: 120px;
}

.hero-txt-wrapper {
    width: 56vw;
    min-width: 960px;
    padding: 10% 0 8%;
    margin-left: 50%;
    transform: translateX(-50%);
}

.hero-title {
    /* margin-bottom: 7vh; */
    font-size: clamp(124px, 7vw, 164px);
    line-height: 0.9;
    letter-spacing: -5px;
    text-align: center;
}

.first-letter {
    font-size: clamp(172px, 9vw, 200px);
}


.hero-title p:first-child {
    text-align: left;
    animation: reveal-01 1.5s ease-out;
}

.hero-title p:last-child {
    text-align: right;
    animation: reveal-02 1.5s ease-out;
    
}

@keyframes reveal-01 {
    0% {
        opacity: 0;
        transform: translateY(100px);
    }
    33% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes reveal-02 {
    0% {
        opacity: 0;
        transform: translateY(100px);
    }
    33% {
        opacity: 0;
        transform: translateY(100px);
    }
    66% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes reveal-03 {
    0% {
        opacity: 0;
        transform: translateY(100px);
    }
    33% {
        opacity: 0;
        transform: translateY(100px);
    }
    66% {
        opacity: 0;
        transform: translateY(100px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.hero-img__container {
    display: flex;
    justify-content: center;
    gap: 1.5vw;
}

#hero-scroll-img {
    animation: reveal-03 1.5s ease-out;
}
.hero-img {
    width: 25%;
    aspect-ratio: 3/4;
    object-fit: contain;
    border-radius: 180px;
    flex: none;
    overflow: hidden;
    background-color: #dddddd;
}

@media (max-width: 1760px) {
    .hero-img {
      border-radius: 140px;
    }
}

@media (max-width: 1360px) {
    .hero-img {
      border-radius: 120px;
    }
}

.hero-img img {
    width: 100%;
    height: 100%;
}


/* about */

#about {
    width: 60vw;
    min-width: 1080px;
    max-width: 1360px;
    height: 100%;
}

.about-text-big {
    font-size: clamp(95px, 5.3vw, 117px);
    letter-spacing: -3px;
    margin-bottom: 120px;
    line-height: 0.9;
}

.about-text-big p {
    padding-bottom: 24px;
}

.about-text-big p:first-child {
    padding-top: 16px;
    text-align: right;
    padding-bottom: 0;
}

.about-text-big span:first-child {
    font-size: 140px;
}

.about-text-small {
    font-size: clamp(14px, 0.8vw, 16px);
    line-height: 1.6;
    display: grid;
    grid-column-gap: 40px;
    grid-template-rows: auto;
    grid-template-columns: 1fr 1fr 1fr;
    grid-auto-columns: 1fr;
    grid-auto-flow: row;
    letter-spacing: 0px;
}

.about-text-small p:first-child {
    grid-column: 2/3;
}

.about-scroll-text p {
    /* color: rgba(0, 154, 61, 0.2); */
    color: #009A3D;
    background-clip: text;
    background-repeat: no-repeat;
    background-size: 0% 100%;
    background-image: linear-gradient(#009a3d, #009a3d);
    /* animation: about-scroll-text linear forwards;
    animation-timeline: view(y); */
}

/* .about-scroll-text p:nth-child(1) {
    animation-range-start: cover 5vh;
    animation-range-end: cover 25vh;
}

.about-scroll-text p:nth-child(2) {
    animation-range-start: cover 25vh;
    animation-range-end: cover 45vh;
}

.about-scroll-text p:nth-child(3) {
    animation-range-start: cover 45vh;
    animation-range-end: cover 65vh;
}

@keyframes about-scroll-text {
    to {
        background-size: 100% 100%;
    }
} */


/* marquee */

.marquee {
    background-color: #009A3D;
    box-sizing: border-box;
    overflow: hidden;
    margin: 120px 0;
}

.marquee-content {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    white-space: nowrap;
    padding: 12px 0;
    animation: marquee 30s linear infinite;
}

.marquee-text {
    font-size: clamp(48px, 3vw, 64px);
    color: #fff;
}

.marquee-text .script {
    font-size: clamp(64px, 4vw, 96px);
}

.marquee-content > img {
    width: 40px;
    height: 40px;
    margin: 0 48px 0 20px;
}

@keyframes marquee {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-100%);
    }
}



/* works */

#works {
    width: 60vw;
    min-width: 1080px;
    max-width: 1360px;
    margin-bottom: 120px;
}

.works-title {
    font-size: clamp(120px ,6vw, 134px);
    text-align: right;
    line-height: 0.8;
}

.works-title-script {
    font-size: clamp(172px, 9vw, 200px);
}

.work-item__container {
    display: grid;
    grid-column-gap: 8vw;
    grid-template-rows: 1fr auto;
    grid-template-columns: repeat(2,minmax(0,1fr));
    grid-auto-columns: 1fr;
}

.work-item:nth-child(even) {
    margin-top: 160px;
}

.work-thumb {
    display: block;
    width: 100%;
    aspect-ratio: 3/4;
    background-color: #ddd;
    border-radius: 40px;
    margin-bottom: 30px;
    transition: 0.5s;
    overflow: hidden;
}

.work-thumb img {
    width: 100%;
    height: auto;
}

.work-thumb:hover {
    border-radius : 160px;
}

.work-title {
    font-size: 48px;
    letter-spacing: -1px;
    margin-bottom: 16px;
}

.work-txt {
    margin-bottom: 24px;
}

.work-service {
    display: flex;
    gap: 8px;
}

.work-chip {
    padding: 8px 16px;
    font-size: 14px;
    font-weight: 500;
    border: solid 1px #009A3D;
    border-radius: 16px;
}


/* Footer */
footer {
    position: relative;
    width: 100%;
    height: 90vh;
    min-height: 800px;
    background-color: #009a3d;
    color: #FEF9EF;
}

.footer-centered {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    font-size: clamp(132px, 6.6vw, 148px);
}

.footer-centered .script {
    font-size: clamp(172px, 9vw, 200px);
}

.footer-centered p:first-child {
    line-height: 0.7;
}
.footer-centered p:last-child {
    line-height: 1.2;
    margin-bottom: 40px;
}

.footer-bottom {
    width: 100%;
    position: absolute;
    left: 0;
    bottom: 0;
}

.footer-bottom__container {
    display: flex;
    justify-content: space-between;
    padding: 50px 60px;
    font-size: clamp(16px, 0.8vw, 20px);
    font-weight: 500;
}

.scroll-to-top {
    text-decoration: none;
    color: #FEF9EF;
}

.scroll-to-top:hover {
    text-decoration: none;
    color: #FEF9EF;
}

.scroll-to-top::after {
    display: block;
    content: '';
    border-bottom: solid 2px #FEF9EF;  
    transform: scaleX(0);
    transform-origin: bottom right;
    transition: transform 250ms ease-in-out;
}

.scroll-to-top:hover::after {
    transform: scaleX(1);
    transform-origin: bottom left;
}

/* cursor */

.cursor, .view-more {
    position: fixed;
    border-radius: 50%;
    pointer-events: none;
    transform: translate(-50%, -50%);
    background: #009A3D;
}

/* .cursor {
    width: 16px;
    height: 16px;
} */

.view-more {
    width: 120px;
    height: 120px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    color: #FEF9EF;
    font-weight: 500;
    left: 0;
    top: 0;
    opacity: 0;
}


/* modal */

.modal-content {
    box-shadow: none;
    border: none;
    border-radius: 0;
}

.modal-body {
    padding: 0;
    color: #333;
}

.modal-body h1 {
    font-size: 64px;
    line-height: 1;
    letter-spacing: -2px;
}

.modal-body img {
    width: 100%;
    display: block;
}

.modal-text {
    display: flex;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    padding: 120px 100px;
    font-family: 'pretendard';
    line-height: 1.6;
}

.modal-info {
    width: 55%;
}

.modal-info > p {
    margin-bottom: 80px;
}

.modal-info ul {
    display: flex;
    gap: 96px;
}

.modal-info span {
    color: #aaa;
    font-weight: 300;
}

.modal-button {
    position: fixed;
    width: 40px;
    height: 40px;
    background: rgba(25,25,25,.3);
    right: -56px;
    top: 0;
    padding: 8px;
    border: none;
    border-radius: 50%;
    transition: .3s;
}

.modal-button:hover {
    background: rgba(25,25,25,.7);
}

.modal-img {
    padding: 160px 120px;
    display: flex;
    gap: 80px;
}


/* background-colors */

.img-bg-06 {
    border-top: 1px solid #222;
}

.bg-black {
    background-color: #030202;
}
.bg-navy {
    background-color: #2d2f3b;
}

.bg-brown {
    background-color: #312823;
}

.bg-beige {
    background-color: #E8E1DC;
}

.bg-green {
    background-color: #A9F3CB;
}

.bg-light-grey {
    background-color: #f7f7f7;
}

/* font-color */
.fc-white {
    color: white;
}

/* .modal-footer {
    font-size: 64px;
    text-align: center;
    letter-spacing: -2px;
    padding: 120px 0;
} */