/* 웹폰트 */
@import url('https://cdn.jsdelivr.net/npm/galmuri@latest/dist/galmuri.css');

@font-face {
    font-family: 'Paperozi';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-7Bold.woff2') format('woff2');
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'Paperozi';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-8ExtraBold.woff2') format('woff2');
    font-weight: 800;
    font-display: swap;
}
@font-face {
    font-family: 'Shouting';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2510-1@1.0/Callifont-Medium.woff2') format('woff2');
    font-weight: normal;
    font-display: swap;
}
@font-face {
    font-family: 'GilbutRainbow';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2112@1.0/GilbeotRainbow.woff') format('woff');
    font-weight: normal;
    font-display: swap;
}

@font-face {
    font-family: 'TtTogether';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/TTTogetherA.woff') format('woff');
    font-weight: normal;
    font-display: swap;
}
/* 폰트 설정 */
.textggu--title3,
.textggu--title4,
.textggu--sub2,
.textggu--sub4,
.textggu--sub6,
.textggu--sub7 {
  font-family: 'Paperlogy-8ExtraBold';
}

.textggu--title1,
.textggu--sub3 {
  font-family: 'TtTogether';
}
.textggu--title6:after {
  font-family:'galmuri9';
}
.textggu--title2,
.textggu--title5 {
  font-family: 'galmuri9';
}
.textggu--title7 {
  font-family: 'GilbutRainbow';
}
.textggu--sub1 {
  font-family:'Paperlogy-7Bold';
}
.textggu--sub5,
.textggu--etc4 {
  font-family: 'galmuri11';
}
.textggu--etc6 {
  font-family: 'dotum';
}


/* 전역 설정 */
:root {
  --effect-text: #aaa;
  --effect-text2: #ffffff;
  --effect-point: var(--primary-color);
  --effect-point2: #7a7b60;
  --effect-point3: #df7676;
  --effect-point4: #d99251;
}

/* _manager.css.php에 편입시키면 위의 코드를
--effect-point: <?=$css['color_point'][0]?>; 로 수정하여
아보카도 관리자 설정의 포인트 색상을 자동 불러오기 할 수 있습니다 */
/* 텍꾸 스타일 */
.txt-box {display: inline-block; padding: 2px 6px; border: 1px solid rgba(0,0,0,0.15); border-radius: 4px; background: rgba(0,0,0,0.04);}
.blur-txt {filter: blur(3px); cursor: pointer; text-decoration: none; color: inherit; transition: filter 0.2s ease;}
.blur-txt.none-blur {filter: none;}
.blurtext {filter: blur(3px);}

/* 서식들 */
.textggu--title1 {
  display: inline-block;
    font-size: 40px;
    line-height: 1em;
    margin-top: 0.2em;
  text-fill-color: transparent;
    -webkit-text-fill-color: transparent;
  text-stroke-width: 1px;
    -webkit-text-stroke-width: 1px;
  text-stroke-color: var(--effect-text2);
    -webkit-text-stroke-color: var(--effect-text2);
    text-shadow: 2px 2px var(--effect-point);
}

.textggu--title2 {
      font-size: 38px;
    line-height: 38px;
    color: var(--effect-text2);
    text-shadow: -1px 0px 0px var(--effect-point), 1px 0px 0px var(--effect-point),0px 1px 0px var(--effect-point), 0px -1px 0px var(--effect-point), 0px 0px 4px rgba(0,0,0,0.7);
  font-weight:bold;
}
.textggu--title3 {
  background-image: url(https://images.unsplash.com/photo-1621799754526-a0d52c49fad5?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80) !important;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-size: 35px;
    line-height: 35px;
  animation-duration: 3s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-timing-function: linear;
    animation-name: background--flow;
    background-size: 200%;
  filter: drop-shadow(0px 0px 3px rgba(0,0,0,.3));
}
@keyframes background--flow {
  0% {
    background-position-y: 0%;
}
100% {
    background-position-y: 100%;
}
}
.textggu--title4 {
    color: white;
    font-size: 35px;
    line-height: 35px;
    background-size: 100%;
    filter: drop-shadow(0px 0px 3px rgba(255,255,255,.3));
    animation: neon-text infinite 5s;
}
@keyframes neon-text {
  0% {
    color: white;
    filter: drop-shadow(0px 0px 3px rgba(255,255,255,.3));
  }
  50% {
    color: white;
    filter: drop-shadow(0px 0px 10px rgba(255,255,255,.6));
  }
  69% {
    color: white;
    filter: drop-shadow(0px 0px 3px rgba(255,255,255,.4));
  }
  70% {
    color: rgba(230, 230, 230);
    filter: drop-shadow(0px 0px 0px rgba(255,255,255,.6));
  }
  75% {
    color: rgba(230, 230, 230);
    filter: drop-shadow(0px 0px 0px rgba(255,255,255,.6));
  }
  80% {
    color: white;
    filter: drop-shadow(0px 0px 3px rgba(255,255,255,.6));
  }
  81% {
    color: rgba(230, 230, 230);
    filter: drop-shadow(0px 0px 0px rgba(255,255,255,.6));
  }
  100% {
    color: white;
    filter: drop-shadow(0px 0px 3px rgba(255,255,255,.3));
  }
}


.textggu--title5{
  display:inline-block;
  font-size:24px;
  font-weight:600;
  letter-spacing:-0.2px;
  position:relative;

  /* 텍스트가 숨 쉬는 느낌 */
  animation: chatAlive 1.6s infinite steps(2, end);
  will-change: transform, filter, text-shadow;
}

/* 핵심: opacity 대신 미세 이동 + 잔광 + 또렷해졌다 흐려짐 */
@keyframes chatAlive{
  0%{
    transform: translateY(0);
    filter: contrast(1);
    text-shadow: 0 0 0 rgba(0,0,0,0);
  }
  50%{
    transform: translateY(-0.6px);
    filter: contrast(1.08);
    text-shadow: 0.6px 0 0 rgba(0,0,0,0.22), -0.4px 0 0 rgba(0,0,0,0.10);
  }
  100%{
    transform: translateY(0);
    filter: contrast(1);
    text-shadow: 0 0 0 rgba(0,0,0,0);
  }
}
.textggu--title5::before{
  content:"|";
  display:inline-block;
  margin: 0 4px;
  animation: chatCursor .9s steps(1) infinite;
}
@keyframes chatCursor{
  0%,49% { opacity:1; }
  50%,100% { opacity:0; }
}

.textggu--title5::after{
  content:"···";
  display:inline-block;
  margin:0 3px;
  animation: typingDots 1.2s infinite steps(1);
}

@keyframes typingDots{
  0%   { opacity:.2; }
  33%  { opacity:.5; }
  66%  { opacity:1; }
  100% { opacity:.2; }
}

.textggu--title6{
  --time-w: 42px;   /* 시간 자리(대충 4자리 기준) */
  --time-gap: 4px;  /* 말풍선과 시간 사이 간격 */

  display:inline-flex;
  align-items:center;

  position:relative;

  background:#2F6FDB;
  color:#fff;
  padding:6px 10px 6px 9px;
  border-radius:10px 10px 10px 0;

  line-height:1.25;
  font-size:15px;
  word-break:keep-all;

  /* ✅ 시간만큼 바깥 공간 예약 */
  margin-right: calc(var(--time-w) + var(--time-gap));
}

.textggu--title6::after{
  content: attr(data-text);
  position:absolute;

  /* ✅ 딱 붙게: gap만큼만 띄우고 바로 옆 */
  left: calc(100% + var(--time-gap));

  /* ✅ 바닥에 붙는 정렬 */
  bottom: 4px;

  width: var(--time-w);
  text-align: left;     /* 캡처처럼 바로 시작 */
  color:#ababab;
  font-size:11px;
  line-height:1;
  white-space:nowrap;
}


.textggu--title7{
  position: relative;
  display: inline-block;
  font-size: 22px;
  font-weight: bold;
  margin:5px;
  color: #510000;
  text-decoration: none;
  z-index: 1;

  /* 텍스트를 빛 속에 넣는 느낌 */
  text-shadow:
    0 0 6px rgb(255 0 0 / 80%),
    0 0 6px rgb(255 65 0 / 60%),
    0 0 9px rgb(255 240 199 / 40%);
}

.textggu--title7::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:110%;
  height:140%;
  transform: translate(-50%, -50%);
  z-index:-1;
  /* 타원형 발광 */
  background: radial-gradient(
    ellipse at center,
    rgb(255 0 0 / 95%) 0%,
    rgb(255 51 0 / 85%) 30%,
    rgba(255, 200, 0, 0.65) 55%,
    rgba(255, 240, 200, 0.35) 70%,
    transparent 85%
  );

  filter: blur(8px);
}

.textggu--title7:hover::before{
  filter: blur(12px);
  transform: translate(-50%, -50%) scale(1.05);
}

.textggu--sub1 {
  display:inline-block;
	position:relative;
	font-weight:bold;
	font-size:16px;
	line-height:100%;
	overflow:hidden;
	margin: 3px 0px -4px 0px;
	padding: 0px 10px 0px 0px;
}
.textggu--sub1:before {
	display:inline-block;
	content:'';
	background: var(--effect-point);
	width: 10px;
	height: 20px;
	vertical-align:middle;
	margin:0px 3px 0px 0px;
  translate:0px -2px;
}

.textggu--sub2 {
  position: relative;
  background-color: var(--effect-point);
  color: var(--effect-text2);
  padding: 5px;
  font-size: 15px;
  line-height: 15px;
  font-weight: bold;
  display: inline-block;
	margin: 1px 8px;
}
.textggu--sub2::before {
  content: '';
  position: absolute;
  left: -7px;
  top: 0;
  width: 0;
  height: 0;
  border-right: 7px solid var(--effect-point);
  border-bottom: 25px solid transparent;
}
.textggu--sub2::after {
  content: '';
  position: absolute;
  right: -7px;
  top: 0;
  width: 0;
  height: 0;
  border-left: 7px solid var(--effect-point);
  border-top: 25px solid transparent;
}
.textggu--sub3 {
  display: inline-block;
  padding: 8px 8px 3px 8px;
  margin: 2px;
  font-size: 16px;
  position: relative;
}
.textggu--sub3::before,
.textggu--sub3::after {
  content: '';
  position: absolute;
  width: 10px;
  height: 10px;
  transition: 0.35s;
  background: transparent;
  z-index: 1;
}
.textggu--sub3::before {
  top: 0;
  left: 0;
  border-left: 4px solid var(--effect-point);
  border-top: 4px solid var(--effect-point);
}
.textggu--sub3::after {
  bottom: 0;
  right: 0;
  border-right: 4px solid var(--effect-point);
  border-bottom: 4px solid var(--effect-point);
}
.textggu--sub4 {
  display: inline-block;
  padding: 8px 8px 3px 8px;
  margin: 2px;
  font-size: 16px;
  position: relative;
}
.textggu--sub4::before,
.textggu--sub4::after {
  content: '';
  position: absolute;
  width: 10px;
  height: 10px;
  transition: 0.35s;
  background: transparent;
  z-index: 1;
}
.textggu--sub4::before {
  top: 2px;
  left: -2px;
  border-left: 6px double var(--effect-point);
  border-top: 6px double var(--effect-point);
}
.textggu--sub4::after {
  bottom: -3px;
  right: -3px;
  border-right: 6px double var(--effect-point);
  border-bottom: 6px double var(--effect-point);
}
.textggu--sub5 {
  display: inline-block;
  padding: 8px 8px 3px 8px;
  margin: 2px;
  font-size: 16px;
  line-height: 16px;
  position: relative;
  background: linear-gradient(to right,var(--effect-point), transparent);
  background-size: 90% 40%;
  background-repeat: no-repeat;
  background-position: 50% 70%;
  font-weight:bold;
}

.textggu--sub6,
.textggu--sub7 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  font-weight: bold;
  margin: 0 3px;
}

/* 공통 before 박스 */
.textggu--sub6::before,
.textggu--sub7::before {
  content: '';
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  border-radius: 4px;

  /* ⭐ 폰트 영향 완전 제거 */
  line-height: 1;
  font-size: 0;
}
.textggu--sub6::before {
  border: 1px solid var(--effect-point);
  background: transparent;
}

.textggu--sub7::before {
  background: var(--effect-point);
  border: 1px solid var(--effect-point);
}
.textggu--sub7::after {
  content: '✔';
  position: absolute;
  margin-left: 4px; /* before 위에 정확히 얹기 */
  font-size: 10px;
  color: var(--effect-text2);
  line-height: 1;
}

/********* 기타 **********/

.textggu--etc1 {
  border-bottom: 3px double #ef535366;
  margin-bottom: -3px;
  display: inline-block;
  height: 16px;
}
.textggu--etc2 {
  background: linear-gradient(45deg, #ffd64973, #ffe14e57);
  border-left: 3px solid #fbdf5e;
  border-right: 3px solid #fbdf5e70;
  text-shadow: 0px 0px 1px var(--shadow);
}
.textggu--etc3 {
  font-size: 15px;
  display: inline-block;
    padding: 5px 7px;
    margin-bottom: 5px;
    border-radius: 5px;
    color: var(--effect-point);
    background: var(--effect-text2);
    font-weight: bold;
    transition-duration: .2s;
}
.textggu--etc3:hover {
  translate: 0px -3px;
  box-shadow:0px 3px 0px rgba(0,0,0,.3);
}
.textggu--etc4 {
  font-weight: bold;
    display: inline-block;
    padding: 1px 7px;
    margin-bottom: 5px;
    line-height: 18px;
    border-radius: 5px;
    background: var(--effect-text2);
    color: var(--effect-point);
    border: 1px solid var(--effect-point);
    transition-duration: 0.2s;
    box-shadow: 1px 1px 0px rgba(0,0,0,0.3);
}
.textggu--etc4:hover {
  background: var(--effect-point);
    color: var(--effect-text2);
    border: 1px solid var(--effect-text2);
    box-shadow: 1px 1px 0px transparent;
    transform: translateX(1px) translateY(1px);
}
.textggu--etc5 {
  color: white;
    background: linear-gradient(to right, var(--effect-point), var(--effect-point4));
    display: inline-block;
    padding: 2px 12px;
    border-radius: 3px;
    box-shadow: 1px 1px 0px rgba(0,0,0,0.3);
}
.textggu--etc5:hover {
      background-image: url(https://images.unsplash.com/photo-1621799754526-a0d52c49fad5?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80) !important;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-timing-function: linear;
    animation-name: background--flow;
    background-size: 200%;
    transform: translate(1px,1px);
    box-shadow: none;
}
.textggu--etc6 {
  font-size: 11px;
  text-shadow: -1px -1px 1px var(--effect-text2), 1px -1px 1px var(--effect-text2), -1px 1px 1px var(--effect-text2), 1px 1px 1px var(--effect-text2);
}