@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100..900&family=Noto+Serif+HK:wght@200..900&display=swap');
@import url("https://use.typekit.net/ipm5esh.css");
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css");

/* Nomalize */
* {
  box-sizing: border-box;
  scroll-behavior: smooth;
  white-space: nowrap;
}

*::selection {
  background-color: #E8642B;
  color: #ffffff;
}

body, div, div {
  margin: 0;
  padding: 0;
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
}

:root {
  --vh: 1vh;
}

/* Breakpoints: 1920 / 1440 / 1280 / 1024 same layout · 768 / 480 mobile */

@supports (height: 1svh) {
  :root {
    --vh: 1svh;
  }
}

html {
  background-color: #f4f4f4;
  overflow-x: clip;
  overflow-y: auto;
}

body {
  min-width: 0;
}

::-webkit-scrollbar {
  width: 0px;
}

/* Cursor */
* {
  cursor: none;
}

.cursor {
  top: -300px;
  left: -300px;
  position: fixed;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: white;
  mix-blend-mode: difference;
  pointer-events: none;
  transform: translateX(-50%) translateY(-50%);
  z-index: 200;
  transition: width .1s, height .1s, background-color 1s;
}

.need-to-cursor-big {
  width: 50px;
  height: 50px;
}

@media screen and (max-width: 1024px) {
  * {
    cursor: auto;
  }

  .cursor {
    display: none;
  }

  .need-to-cursor-big {
    display: none;
  }
}

/* Loader */
.progress {
  background-color: #F5F5F5;
  color: #0d0d0d;
  height: 100%;
  position: fixed;
  width: 100%;
  z-index: 300;
}

.progress-content {
  position: absolute;
  top: 50%;
  left: 5%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  z-index: 300;
}

.progress-text {
  font-family: "aktiv-grotesk", sans-serif;
  font-size: 15px;
  color: #0d0d0d;
}

.progress-bar {
  background-color: #E8642B;
  width: 190px;
  height: 3px;
}

/* Header */
.header {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 100px;
  z-index: 101;
  padding: 0 30px;
}

.header-logobox {
  z-index: 300;
}

.header-logobox > a {
  vertical-align: middle;
  padding: 3px;
  z-index: 300;
  display: flex;
  align-items: center;
}

.header-logobox > a > img {
  width: 90px;
}

.header-menubox {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 30px;
  width: 80px;
  position: relative;
  z-index: 201;
}

.header-menu-en {
  display: flex;
  align-items: center;
  height: 30px;
  font-family: "aktiv-grotesk", sans-serif;
  font-weight: 600;
  font-size: 1rem;
  color: #0d0d0d;
  transition: .3s;
}

.header-menubox:hover > .header-menu-en {
  font-size: 1.3rem;
  transition: .5s;
}

.header-menu-dot {
  display: flex;
  justify-content: space-around;
  align-items: center;
  height: 30px;
  width: 30px;
}

.menu-first,
.menu-second,
.menu-third {
  height: 5px;
  width: 5px;
  background-color: #0d0d0d;
  border-radius: 100%;
  z-index: 200;
  transition: all 1s;
}

.menu-second {
  z-index: 199;
  transition: all .3s;
}

.header-menubox:hover > .header-menu-dot > .menu-first,
.header-menubox:hover > .header-menu-dot > .menu-third {
  display: none;
}

.header-menubox:hover > .header-menu-dot > .menu-second {
  width: 25px;
  height: 25px;
  border-radius: 100%;
}

.scale {
  scale: 1000;
  background-color: #F5F5F5;
  transition: scale 1s ease-in-out;
}

.menuSelector {
  color: #0d0d0d;
  display: flex;
  position: fixed;
  opacity: 0;
  top: -100%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  z-index: 200;
}

.opacity {
  top: 45%;
  opacity: 100;
  transition:
    top .1s,
    opacity 2s ease-in-out;
}

.menuSelectorWrapper {
  display: none;
  flex-direction: column;
  font-family: "aktiv-grotesk", sans-serif;
  font-weight: 700;
  justify-content: center;
  align-items: start;
  margin-top: 5vh;
  font-size: 3.5rem;
  z-index: 100;
}

.menuSelectorWrapper div:hover {
  text-decoration: underline;
  font-size: 4rem;
  transition:
    all 0s,
    font-size .5s;
}

.displayFlex {
  display: flex;
}

/* Main */
.main {
  --hanseong-scale: min(1, (100vw - 200px) / 1540px);
  font-family: 'Noto Sans KR', sans-serif;
  font-size: 1rem;
  font-weight: 300;
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

.area-1 {
  display: flex;
  width: 100%;
  background-color: #f4f4f4;
}

.area-1 > .mainImg {
  width: 100%;
}

.area-1 > .mainImg > img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.area-2,
.area-3 {
  width: 1540px;
  margin-left: auto;
  margin-right: auto;
  padding: 150px 0 0;
  zoom: var(--hanseong-scale);
}

.area-4 {
  width: 1920px;
  margin: 0 auto 200px;
  padding: 150px 0 0;
  zoom: min(1, 100vw / 1920px);
}

.overview,
.logoIntro {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  height: auto;
  min-height: 160px;
  min-width: 1540px;
}

.overview h3,
.logoIntro h3 {
  margin: 0;
  flex-shrink: 0;
  font-family: "Pretendard", sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.4;
  color: #0d0d0d;
}

.overviewCopy,
.logoCopy {
  flex-shrink: 0;
  white-space: normal;
}

.overviewCopy p,
.logoCopy p {
  margin: 0;
  font-family: "Pretendard", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  color: #0d0d0d;
  white-space: normal;
}

.overviewCopy p + p,
.logoCopy p + p {
  margin-top: 16px;
}

.area-2 .compare {
  display: flex;
  justify-content: space-between;
  margin-top: 150px;
  min-width: 1540px;
}

.area-2 .compareFrame {
  width: 760px;
  height: 820px;
  flex-shrink: 0;
  margin-bottom: 54px;
  overflow: hidden;
}

.area-2 .compareFrame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.defGrid {
  display: grid;
  grid-template-columns: repeat(4, 362px);
  justify-content: center;
  gap: 15px;
  margin-top: 150px;
  width: 1540px;
  min-width: 1540px;
}

.defCell {
  width: 362px;
  height: 362px;
  overflow: hidden;
}

.defCell img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.defPoints {
  display: flex;
  margin-top: 35px;
}

.defPoints > div,
.defWear > div {
  width: 50%;
  text-align: left;
}

.defPoints h4,
.defWear h4 {
  margin: 0;
  font-family: "Pretendard", sans-serif;
  font-weight: 500;
  font-size: 32px;
  line-height: 1.4;
  color: #0d0d0d;
}

.defPoints p,
.defWear p {
  margin: 15px 0 0;
  font-family: "Pretendard", sans-serif;
  font-weight: 400;
  font-size: 24px;
  line-height: 1.5;
  color: #0d0d0d;
  white-space: normal;
}

.defWide {
  width: 1540px;
  min-width: 1540px;
  height: 580px;
  margin-top: 80px;
  overflow: hidden;
}

.defWide img {
  display: block;
  width: calc(100% + 3px);
  height: calc(100% + 3px);
  max-width: none;
  object-fit: cover;
  object-position: top left;
}

.defWear {
  display: flex;
  margin-top: 35px;
  margin-bottom: 135px;
}

.defWear p {
  margin-top: 0;
}

.essence {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-top: 150px;
  min-width: 1540px;
}

.essenceFrame {
  width: 770px;
  height: 678px;
  flex: 0 0 770px;
  margin-bottom: 52px;
  overflow: hidden;
}

.essenceFrame img {
  display: block;
  width: calc(100% + 1px);
  height: calc(100% + 1px);
  max-width: none;
  object-fit: cover;
  object-position: top left;
}

.essenceFrame-fill img {
  width: calc(100% + 1px);
  height: calc(100% + 1px);
  object-fit: fill;
}

.naming,
.logo {
  width: 1540px;
  min-width: 1540px;
  height: auto;
  margin-top: 150px;
  margin-bottom: 150px;
  overflow: hidden;
}

.naming {
  border-radius: 30px;
}

.naming img,
.logo img {
  display: block;
  width: 100%;
  height: auto;
}

.color {
  width: 1540px;
  min-width: 1540px;
  margin-top: 150px;
  margin-bottom: 150px;
  overflow: hidden;
}

.color img {
  display: block;
  width: 100%;
  height: auto;
}

.mockFull {
  width: 1920px;
  overflow: hidden;
}

.mockFull img {
  display: block;
  width: 100%;
  height: auto;
}

.mockPair {
  display: flex;
  align-items: stretch;
  width: 1920px;
}

.mockPairLeft {
  display: block;
  width: 1023px;
  height: auto;
  flex-shrink: 0;
}

.mockPairRight {
  display: block;
  width: 897px;
  height: auto;
  flex-shrink: 0;
}

.mockLast {
  display: flex;
  align-items: stretch;
  width: 1920px;
}

.mockLastLeft {
  display: flex;
  flex-direction: column;
  gap: 27px;
  width: 556px;
  margin-left: 137px;
  margin-right: 137px;
  padding-top: 84px;
  padding-bottom: 50px;
}

.mockLastLeft img {
  display: block;
  width: 100%;
  height: auto;
}

.defWide,
.essenceFrame,
.naming,
.mockRow img,
.mockLastLeft img:first-child {
  box-shadow: 6px 4px 12px rgba(0, 0, 0, 0.25);
}

.mockLastRight {
  width: 1090px;
  flex-shrink: 0;
  overflow: hidden;
}

.mockLastRight img {
  display: block;
  width: 1090px;
  height: 100%;
  object-fit: cover;
}

/* Footer */
.footer {
  bottom: 0;
}

.footer-infBox {
  margin-bottom: 3vh;
  margin-left: calc(2vw + 10px);
}

.footer > .footer-infBox > .co-inf {
  font-family: 'Noto Sans Kr', sans-serif;
  font-weight: 300;
  font-size: .6rem;
  color: #0d0d0d;
}

/* 1440 — same PC layout, tighter gutters */
@media screen and (max-width: 1440px) {
  .main {
    --hanseong-scale: min(1, (100vw - 160px) / 1540px);
  }
}

/* 1280 — same PC layout */
@media screen and (max-width: 1280px) {
  .main {
    --hanseong-scale: min(1, (100vw - 120px) / 1540px);
  }
}

/* 1024 — last PC layout */
@media screen and (max-width: 1024px) {
  .main {
    --hanseong-scale: min(1, (100vw - 80px) / 1540px);
  }
}

/* 768 — mobile layout */
@media screen and (max-width: 768px) {
  html,
  body,
  .main {
    min-width: 0;
  }

  .main {
    --hanseong-scale: 1;
  }

  .header {
    width: 100%;
    height: 80px;
    padding: 0 20px;
    left: 0;
    right: 0;
  }

  .header-logobox > a > img {
    width: 72px;
  }

  .menuEn {
    display: none;
  }

  .header-menubox {
    width: 36px;
    height: 36px;
    justify-content: center;
  }

  .menuSelectorWrapper {
    font-size: 2.8rem;
    margin-top: calc(var(--vh, 1svh) * 5);
  }

  .menuSelectorWrapper div:hover {
    font-size: 2.8rem;
  }

  .area-1 {
    width: 100%;
    height: auto;
  }

  .area-1 > .mainImg {
    width: 100%;
    height: auto;
  }

  .area-1 > .mainImg > img {
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center;
  }

  .area-2,
  .area-3 {
    width: 100%;
    zoom: 1;
    padding: 80px 12px 0;
  }

  .area-4 {
    width: 100%;
    zoom: 1;
    padding: 80px 0 0;
    margin-bottom: 80px;
  }

  .overview,
  .logoIntro {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    height: auto;
    min-width: 0;
    gap: 16px;
  }

  .overview h3,
  .overviewCopy,
  .logoIntro h3,
  .logoCopy {
    width: 100%;
    flex-shrink: 1;
  }

  .overview h3,
  .logoIntro h3 {
    font-size: 18px;
  }

  .overviewCopy p,
  .logoCopy p {
    font-size: 12px;
  }

  .overviewCopy p br,
  .logoCopy p br {
    display: none;
  }

  .area-2 .compare {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    min-width: 0;
    margin-top: 32px;
  }

  .area-2 .compareFrame {
    width: 100%;
    height: auto;
    aspect-ratio: 760 / 820;
    flex: none;
    min-width: 0;
    margin-bottom: 0;
  }

  .defGrid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    min-width: 0;
    gap: 8px;
    margin-top: 32px;
    justify-content: center;
  }

  .defCell {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
  }

  .defPoints {
    gap: 15px;
    width: 100%;
    min-width: 0;
  }

  .defPoints > div,
  .defWear > div {
    min-width: 0;
  }

  .defPoints h4,
  .defWear h4 {
    font-size: 14px;
  }

  .defPoints p,
  .defWear p {
    font-size: 12px;
  }

  .defWide {
    width: 100%;
    min-width: 0;
    height: auto;
    aspect-ratio: 1540 / 580;
    margin-top: 32px;
  }

  .defWide img {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
  }

  .defWear {
    width: 100%;
    min-width: 0;
    margin-bottom: 48px;
  }

  .essence {
    flex-direction: column;
    width: 100%;
    min-width: 0;
    margin-top: 32px;
    gap: 12px;
  }

  .essenceFrame {
    width: 100%;
    height: auto;
    flex: none;
    aspect-ratio: 770 / 678;
    margin-bottom: 0;
  }

  .essenceFrame img,
  .essenceFrame-fill img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .naming,
  .logo,
  .color {
    width: 100%;
    min-width: 0;
    height: auto;
    margin-top: 32px;
    margin-bottom: 48px;
  }

  .naming {
    aspect-ratio: 1540 / 580;
    border-radius: 6px;
  }

  .naming img,
  .logo img,
  .color img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }

  .naming img {
    height: 100%;
    object-fit: cover;
  }

  .mockFull,
  .mockPair {
    width: 100%;
  }

  .mockFull img {
    width: 100%;
    height: auto;
  }

  .mockPair {
    flex-direction: column;
  }

  .mockPairLeft,
  .mockPairRight {
    width: 100%;
    height: auto;
  }

  .mockLast {
    flex-direction: column;
    width: 100%;
  }

  .mockLastLeft {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding: 24px 24px 16px;
    gap: 12px;
  }

  .mockLastRight {
    width: 100%;
  }

  .mockLastRight img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }

  .footer-infBox {
    margin-bottom: calc(var(--vh, 1svh) * 3);
  }
}

/* 480 — compact phone */
@media screen and (max-width: 480px) {
  .header {
    height: 72px;
    padding: 0 16px;
  }

  .header-logobox > a > img {
    width: 64px;
  }

  .menuSelectorWrapper {
    font-size: 2.4rem;
  }

  .menuSelectorWrapper div:hover {
    font-size: 2.4rem;
  }
}
