/* 공용 모션 스타일 - fx.js 와 짝 */
:root{--ease:cubic-bezier(.2,.8,.2,1);--cur-c:#14804a}

/* 글자 단위 등장 */
[data-split]{display:block}
.ln{display:block;overflow:hidden;padding:.08em .04em .16em;margin:-.08em -.04em -.16em}
.w{display:inline-block;white-space:nowrap}
.c{display:inline-block;transform:translate3d(0,112%,0) rotate(7deg);transform-origin:0 100%;transition:transform 1s var(--ease) calc(var(--i)*26ms + var(--base,0ms))}
.in .c,.c.in{transform:none}
[data-split].in .c{transform:none}
.acc{display:inline}

/* 리빌 */
[data-r]{opacity:0;translate:0 44px;transition:opacity .9s ease var(--d,0ms),translate 1.1s var(--ease) var(--d,0ms),scale 1.1s var(--ease) var(--d,0ms),filter .9s ease var(--d,0ms)}
[data-r=left]{translate:-70px 0}
[data-r=right]{translate:70px 0}
[data-r=zoom]{translate:0 0;scale:.86}
[data-r=blur]{translate:0 24px;filter:blur(14px)}
[data-r].in{opacity:1;translate:0 0;scale:1;filter:none}

/* 틸트 카드 공통 */
[data-tilt]{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;will-change:transform}
.spot{position:relative;overflow:hidden}
.spot::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(260px circle at var(--sx,50%) var(--sy,50%),var(--spot,rgba(255,255,255,.55)),transparent 70%);z-index:1}
.spot:hover::before{opacity:1}
[data-tilt]::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.28),transparent 55%);mix-blend-mode:soft-light}
[data-tilt]:hover::after{opacity:1}

/* 마퀴 */
.mq{overflow:hidden;white-space:nowrap}
.mq-t{display:inline-flex;will-change:transform}
.mq-g{display:inline-flex;flex:none;align-items:center}

/* 진행바 / 로더 */
#prog{position:fixed;left:0;top:0;right:0;height:3px;background:var(--cur-c);transform-origin:0 50%;transform:scaleX(0);z-index:100}
.loader{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;transition:clip-path 1s var(--ease) .15s,visibility 0s 1.3s;clip-path:inset(0 0 0 0)}
body.ready .loader{clip-path:inset(0 0 100% 0);visibility:hidden}
body:not(.ready){overflow:hidden}

/* 커서 */
.has-cur,.has-cur a,.has-cur button{cursor:none}
.cur,.cur-dot{position:fixed;left:0;top:0;pointer-events:none;z-index:300;border-radius:50%;will-change:transform;opacity:0}
.cur.show,.cur-dot.show{opacity:1}
.cur{width:38px;height:38px;margin:-19px 0 0 -19px;border:1.5px solid var(--cur-c);transition:width .25s,height .25s,margin .25s,background .25s,border-color .25s}
.cur.hov{width:68px;height:68px;margin:-34px 0 0 -34px;background:color-mix(in srgb,var(--cur-c) 14%,transparent)}
.cur-dot{width:7px;height:7px;margin:-3.5px 0 0 -3.5px;background:var(--cur-c)}

/* 선 그리기 (data-line) */
[data-line]{--line:0}

@media (prefers-reduced-motion:reduce){
  .c,[data-r]{transition:none!important;transform:none!important;translate:none!important;opacity:1!important;filter:none!important}
  .loader{display:none}
}
