@charset 'UTF-8';

/* ************** */
/* **** Root **** */
/* ************** */
:root[data-theme='light'] [data-mode='dark'],
:root[data-theme='dark'] [data-mode='light'] {
  display: none;
}

:root[data-lang='ko'] [data-mode='en'],
:root[data-lang='en'] [data-mode='ko'] {
  display: none;
}

:root {

  --font-size: 14px;
  --font-size-xs: calc(var(--font-size) - 3px);
  --font-size-s: calc(var(--font-size) - 2px);
  --font-size-l: calc(var(--font-size) + 1px);
  --font-size-xl: calc(var(--font-size) + 4px);

  --font-family: 'Pretendard Variable', -apple-system, sans-serif;

  --font-weight-general: 500;
  --font-weight-semi-bold: 600;
  --font-weight-bold: 700;

  --main-width: calc(100% - var(--sidebar-width));
  --content-width: 935px;
  --sidebar-width: 244px;
  --nav-height: 60px;

  --round: 11px;
  --round-s: 8px;
  --round-xl: 1000px;

  --duration: 0.4s;
}

:root[data-theme='light'] {
  --color-bg: rgb(255, 255, 255);
  --color-bg-hover: rgb(250, 250, 250);
  --color-font: rgb(38, 38, 38);
  --color-font-secondary: rgb(142,142,142);
  --color-icon: rgb(38, 38, 38);
  --color-border: rgb(219, 219, 219);
  --color-bubble-border: rgb(235, 235, 235);
  --color-bubble-sub-bg: rgb(247, 247, 247);
  --color-tag : #0593D3;
}

:root[data-theme='dark'] {
  --color-bg: rgb(0, 0, 0);
  --color-bg-hover: rgb(18, 18, 18);
  --color-font: rgb(250, 250, 250);
  --color-font-secondary: rgb(142,142,142);
  --color-icon: rgb(245, 245, 245);
  --color-border: rgb(38, 38, 38);
  --color-bubble-border: rgb(38, 38, 38);
  --color-bubble-sub-bg: rgb(29, 29, 29);
  --color-tag : #0593D3;
}
/* ************** */
/*





*/
/* ********************** */
/* **** Global reset **** */
/* ********************** */
* {
  margin: 0;
  padding: 0;
  /* word-break: break-all; */
  box-sizing: border-box;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: none;
}

a:link,
a:visited,
a:hover,
a:active {
  color: inherit;
  text-decoration: none;
}

button {
  color: inherit;
  border: none;
  outline: none;
  background: none;
  cursor: pointer;
}

ol,
ul,
li {
  list-style: none;
}

.sidebar::-webkit-scrollbar {
  display: none;
}

[data-tistory-react-app='Namecard'] {
  display: none !important;
}
/* ********************** */
/*





*/
/* **************** */
/* **** Layout **** */
/* **************** */
body {
  color: var(--color-font);
  font-size: var(--font-size);
  font-weight: var(--font-weight-general);
  font-family: var(--font-family);
  background-color: var(--color-bg);
}

.wrap {
  /* margin-top: var(--nav-height); */
}

.main {
  width: var(--main-width);
  margin: 0 auto;
}

.container-wrap {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.container {
  width: var(--content-width);
  max-width: 95%;
}

.sidebar {
  width: fit-content;
  height: calc(100vh - var(--nav-height));
  align-self: flex-start;
  padding: 32px 16px;
  position: sticky;
  position: -webkit-sticky;
  top: var(--nav-height);
  border-right: 1px solid var(--color-border);
  background-color: var(--color-bg);
  overflow-x: hidden;
  overflow-y: scroll;
  z-index: 99;
}
/* **************** */
/*





*/
/* **************** */
/* **** Preset **** */
/* **************** */
.icon {
  stroke: var(--color-font);
}

.icon--16x {
  width: 16px;
  height: 16px;
}

.icon-color {
  color: var(--color-icon);
}

.icon-stroke {
  stroke: var(--color-font);
}

.grid {
  display: grid;
}

.flex {
  display: flex;
}

.flex--col {
  flex-direction: column;
}

.flex--fix {
  flex: 0 0 auto;
}

.align-center {
  align-items: center;
}

.space-between {
  justify-content: space-between;
}

.hidden {
  display: none !important;
}
/* **************** */
/*





*/
/* **************** */
/* **** Loader **** */
/* **************** */
.loader {
  width: 100vw;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  background: var(--color-bg);
  transition: all 0.75s;
  z-index: 10000;
}

.loader--hidden {
  opacity: 0;
  visibility: hidden;
}

.loader-item,
.loader-item::before,
.loader-item::after {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  animation-fill-mode: both;
  animation: loader 2s infinite ease-in-out;
}

.loader-item {
  color: var(--color-secondary);
  font-size: 10px;
  position: fixed;
  text-indent: -9999em;
  transform: translateZ(0);
  animation-delay: -0.1s;
}

.loader-item::before,
.loader-item::after {
  content: '';
  position: absolute;
  top: 0;
}

.loader-item::before {
  left: -24px;
  animation-delay: -0.2s;
}

.loader-item::after {
  left: 24px;
}

@keyframes loader {
  0%,
  80%,
  100% {
    box-shadow: 0 2.5em 0 -1.3em;
  }

  40% {
    box-shadow: 0 2.5em 0 0;
  }
}
/* **************** */
/*





*/
/* ******************* */
/* **** Navigator **** */
/* ******************* */
.nav {
  width: 100%;
  height: var(--nav-height);
  padding: 0 24px;
  position: sticky;
  position: -webkit-sticky;
  top: 0;
  border-bottom: 1px solid var(--color-border);
  background-color: var(--color-bg);
  z-index: 999;
}

.nav .container {
  position: relative;
}
/* ******************* */
/*






*/
/* *********************** */
/* **** Setting modal **** */
/* *********************** */
.setting-modal {
  /* display: none; */
  position: absolute;
  top: calc(var(--nav-height));
  right: 0;
  border-radius: var(--round);
  filter: drop-shadow(0 0 5px rgba(0, 0, 0, .0975));
  -webkit-filter: drop-shadow(0 0 5px rgba(0, 0, 0, .0975));
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  transition: all var(--duration);
  z-index: 999;
}

.setting-modal.active {
  /* display: block; */
  overflow: visible;
  visibility: visible;
  opacity: 1;
}

:root[data-theme="light"] .setting-modal {
  background-color: var(--color-bg);
}

:root[data-theme="dark"] .setting-modal {
background-color: rgb(38, 38, 38);
}

.setting-list button {
  width: 100%;
  border-bottom: 1px solid var(--color-border);
}

.setting-list button:last-child {
  border-bottom: none;
}

.setting-list button {
  gap: 8px;
  padding: 18px 24px;
}

button.font-small-btn {
  border-bottom: none;
}

.font-size__label--l {
  font-size: 16px;
}

.font-size__label--s {
  font-size: 12px;
}
/* *********************** */
/*





*/
/* **************** */
/* **** Header **** */
/* **************** */
.header .container {
  padding: 60px 20px;
  border-bottom: 1px solid var(--color-border);
}

.header .container {
  grid-template-columns: 1fr 2fr;
  align-items: center;
}

.profile {
  gap: 20px;
}

.profile-img-wrap {
  width: 150px;
  height: 150px;
  display: block;
  border-radius: 50%;
  justify-self: center;
}

.profile-img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 50%;
  object-fit: cover;
}

.profile-id-wrap {
  gap: 8px;
}

.id__icon {
  width: 15px;
  height: 15px;
}

.profile-follower-info {
  gap: 40px;
}

.profile-follower-info > div {
  gap: 8px;
}

.follower-info__count {
  font-weight: var(--font-weight-semi-bold);
}

.profile-name {
  font-weight: var(--font-weight-semi-bold);
}

.profile-desc {
  margin-top: -8px;
  color: rgb(196, 196, 196);
  font-size: var(--font-size-xs);
  font-weight: 400;
}
/* **************** */
/*





*/
/* ***************** */
/* **** Sidebar **** */
/* ***************** */
.sidebar-wrap {
  position: relative;
  align-self: flex-start;
}

.menu-list {
  gap: 16px;
}

.menu-item {
  gap: 12px;
  padding: 8px 16px;
  border-radius: var(--round-xl);
  transition: all var(--duration);
}

.menu-item:hover {
  background-color: var(--color-bg-hover);
}

.menu-label {
  padding-right: 86px;
}
/* ***************** */
/*





*/
/* ************** */
/* **** List **** */
/* ************** */
.item.container {
  padding: 0 0;
}

.content {
  padding: 14px 0;
}

.item-list {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.item-list li {
  min-height: 0;
}

.item-wrap {
  position: relative;
  overflow: hidden;
}

.item-date {
  width: 100%;
  height: 36px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  bottom: -36px;
  color: rgb(255, 255, 255);
  font-size: var(--font-size-s);
  background-color: rgba(0, 0, 0, 0.25);
  transition: all var(--duration);
  z-index: 9;
}

.item-wrap:hover .item-date {
  bottom: 0;
}

.item-wrap:hover .item-thumb-img {
  transform: scale(1.075);
}

.item-thumb-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  aspect-ratio: 1 / 1;
  transition: all var(--duration);
}

.multiple-content {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 9;
}
/* ************** */
/*





*/
/* ***************** */
/* **** Content **** */
/* ***************** */
.content {
  position: relative;
}

.main-content {
  max-width: 500px;
  margin-left: auto;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 24px 0 64px;
  line-height: 1.7;
}

.bubble-main {
  width: 80%;
  padding: 14px;
  border-radius: var(--round);
  border-top-left-radius: 0;
  /* border: 1px solid var(--color-bubble-border); */
  background-color: rgb(235, 235, 235);
}

.bubble-sub {
  width: fit-content;
  max-width: 95%;
  padding: 14px;
 margin-left: auto;
  font-size: var(--font-size-s);
  border-radius: var(--round);
  border-top-right-radius: 0;
  background-color: var(--color-bubble-sub-bg);
}
/* ***************** */
/*





*/
/* ***************** */
/* **** Article **** */
/* ***************** */
.article {
  background-color: var(--color-bg);
}

.article-header {
  gap: 16px;
  padding: 0 14px 14px 14px;
  border-bottom: 1px solid var(--color-border);
}

.article-name-wrap {
  gap: 8px;
}

.article-profile-img {
  width: 32px;
  height: 32px;
  display: block;
  border-radius: 50%;
}

.article-badge {
  width: 16px;
  height: 16px;
}

.article-date {
  margin-left: auto;
  color: var(--color-font-secondary);
  font-size: var(--font-size-xs);
}

.article-content {
  padding: 32px;
}

.article-content {
  /* display: flex;
  flex-direction: column;
  gap: 24px; */
  line-height: 1.7;
}

.article-content video,
.article-content iframe {
  max-width: 100%;
  display: block;
  margin: 0 auto;
  border-radius: var(--round);
}

.article-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.article-content img {
  max-width: 100%;
  display: block;
  margin: 0 auto;
  border-radius: var(--round);
}

.empty-content {
  margin: 48px auto;
  text-align: center;
}

.tag,
.tag:link,
.tag:visited,
.tag:hover,
.tag:active {
  color: var(--color-tag);
}
/* ***************** */
/*





*/
/* ******************** */
/* **** Pagination **** */
/* ******************** */
.pagination {
  width: 100%;
  display: flex;
  gap: 14px;
  align-items: center;
  margin: 48px 0 64px 0;
}

.pagination svg {
  cursor: pointer;
}

.pagination-num {
  display: flex;
  gap: 24px;
  font-size: var(--font-size-s);
}

.pagination .selected {
  color: var(--color-font-secondary);
  font-style: italic;
}

.pagination-num a:hover,
.pagination-num a:active {
  font-style: italic;
}
/* ******************** */
/*





*/
/* ******************** */
/* **** Responsive **** */
/* ******************** */
@media screen and (max-width: 1264px) {
  .icon--24h {
    height: 18px;
  }

  .container {
    width: 100%;
  }

  .icon-logo {
    height: 24px;
  }

  .menu-label {
    display: none;
  }

  .profile-img-wrap,
  .profile-img {
    width: 100px;
    height: 100px;
  }

  .item.container {
    padding: 0;
  }

  .item-list {
    gap: 8px;
  }

  .article-badge {
    width: 12px;
    height: 12px;
  }
}

@media screen and (max-width: 684px) {
  .wrap {
    margin-bottom: 50px;
  }

  .main {
    width: 100%;
    max-width: 95%;
  }

  .profile-name {
    display: none;
  }

  .container {
    width: 100%;
  }

  .header .container {
    padding: 40px 0px;
  }

  .profile-follower-info > div {
    flex: 0 0 auto;
    flex-direction: column;
  }

  .profile-img-wrap,
  .profile-img {
    width: 72px;
    height: 72px;
  }

  .follower-info__count {
    font-size: var(--font-size-s);
  }

  .id__icon {
    width: 12px;
    height: 12px;
  }

  .sidebar {
    width: 100%;
    height: 50px;
    display: flex;
    align-items: center;
    position: fixed;
    left: 0;
    bottom: 0;
    top: calc(100% - 55px);
    border-top: 1px solid var(--color-border);
    border-right: none;
    overflow: hidden;
    z-index: 99;
  }

  .menu-list {
    width: 100%;
    flex-direction: row;
    justify-content: space-between;
    padding: 16px 18px 18px 18px;
  }

  .menu-item {
    padding: 0;
  }

  .item-list {
    gap: 4px;
  }

  .article-grid {
    grid-template-columns: 1fr;
  }

.article-content img {
  max-width: 100%;
}
}
/* ******************** */