/* 약속. v3 — 디자인 토큰 + 전역 base. 시안(README Design Tokens + HTML 인라인 style) 기준. */
:root{
  --yk-blue:#2496ED; --yk-blue-dark:#1676C9; --yk-yellow:#FACE21;
  --yk-ink:#111114; --yk-meta:#657180; --yk-meta2:#5B6676;
  --yk-line:#DCE4EC; --yk-line2:#E6EBF1;
  /* 상태색 */
  --yk-kept:#2496ED; --yk-late:#FF6A00; --yk-broken:#E3302A; --yk-progress:#FACE21; --yk-unknown:#5E636B;
  --yk-ease-head:cubic-bezier(.33,1,.68,1);
  --yk-sh-glass:0 0 0 1px rgba(255,255,255,.9) inset,0 1px 2px rgba(17,17,20,.05),0 12px 32px -16px rgba(30,70,140,.28);
  --yk-sh-panel:0 1px 2px rgba(17,17,20,.04),0 24px 60px -34px rgba(30,70,140,.5);
  --yk-sh-chatbar:0 1px 2px rgba(17,17,20,.05),0 20px 48px -22px rgba(30,70,140,.44);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:#fff;color:var(--yk-ink);
  font-family:"Wanted Sans Variable","Pretendard Variable","Apple SD Gothic Neo","Noto Sans KR",-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;word-break:keep-all}
*{word-break:keep-all}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}
::selection{background:var(--yk-yellow)}
nav::-webkit-scrollbar{display:none}
:focus{outline:none}
:focus-visible{outline:2px solid var(--yk-blue);outline-offset:2px}
.yk-num{font-family:"Archivo",system-ui,sans-serif;font-weight:700;letter-spacing:-.02em}
/* 헤더 nav 링크 */
.yk-navlink{flex:none;font-size:15px;text-decoration:none;padding:20px 0 18px;border-bottom:2px solid transparent;white-space:nowrap;transition:color .15s;color:#3E4A59;font-weight:500}
.yk-navlink.on{color:var(--yk-ink);font-weight:700;border-bottom-color:var(--yk-blue)}
.yk-navlink:hover{color:var(--yk-blue-dark)}
@media(max-width:860px){#demo-tag{display:none!important}}

/* 대시보드 오버레이 보조 — 회전 점 은은한 맥동, details 마커 숨김 */
.yk-read summary::-webkit-details-marker{display:none}
.yk-spindot{animation:ykPulse 1.8s ease-in-out infinite}
@keyframes ykPulse{0%,100%{opacity:1}50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){.yk-spindot{animation:none}}

/* 이슈 상세 맨 아래 '약속의 여정 보기' — 펼친 끝에 있어서 눈에 안 들어온다.
   세 번만 가볍게 튀고 멈춘다(무한 반복은 읽는 데 방해가 된다). 화살표만 움직이고
   버튼 자체는 가만히 둬서 누르는 자리가 흔들리지 않게 한다. */
.yk-bounce>span:last-child{display:inline-block;animation:ykNudge 1.1s ease-in-out 3}
@keyframes ykNudge{0%,100%{transform:translateX(0)}40%{transform:translateX(5px)}70%{transform:translateX(1px)}}
.yk-bounce:hover>span:last-child{animation:none;transform:translateX(4px);transition:transform .15s ease}
@media(prefers-reduced-motion:reduce){.yk-bounce>span:last-child{animation:none}}

/* 토스식 자릿수 롤링 숫자 */
.yk-roll{display:inline-flex;align-items:flex-end;line-height:1}
.yk-roll-sep{display:inline-block}
.yk-roll-d{display:inline-block;height:1em;overflow:hidden;vertical-align:bottom}
.yk-roll-col{display:flex;flex-direction:column;will-change:transform}
.yk-roll-col>span{height:1em;display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){.yk-roll-col{transition:none!important}}
