@charset "utf-8";

/* ── 웹폰트 ─────────────────────────────────────────────────────────── */
@font-face{font-family:Pretendard;font-style:normal;font-weight:300;font-display:swap;
  src:url(https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/static/woff2/Pretendard-Light.woff2) format("woff2")}
@font-face{font-family:Pretendard;font-style:normal;font-weight:400;font-display:swap;
  src:url(https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/static/woff2/Pretendard-Regular.woff2) format("woff2")}
@font-face{font-family:Pretendard;font-style:normal;font-weight:500;font-display:swap;
  src:url(https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/static/woff2/Pretendard-Medium.woff2) format("woff2")}
@font-face{font-family:Pretendard;font-style:normal;font-weight:700;font-display:swap;
  src:url(https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/static/woff2/Pretendard-Bold.woff2) format("woff2")}
@font-face{font-family:Pretendard;font-style:normal;font-weight:900;font-display:swap;
  src:url(https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/static/woff2/Pretendard-Black.woff2) format("woff2")}

/* ── 색·타이포 토큰 ──────────────────────────────────────────────────
   원본과 같은 렌더링 색을 얻기 위해 원본이 쓰는 색 공간 표기를 그대로 사용한다. */
:root{
  --ease:cubic-bezier(.4,0,.2,1);
  --tr-colors:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,
    --tw-gradient-from,--tw-gradient-via,--tw-gradient-to;
  --tr-transform:transform,translate,scale,rotate;

  --font-sans:"Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;

  --color-white:#fff;
  --color-black:#000;
  --color-primary:#2b6cb0;
  --color-secondary:#f7f7f7;
  --color-foreground:#111827;
  --color-footer:#222;

  --color-blue-400:lab(65.0361% -1.42065 -56.9802);
  --color-blue-500:lab(54.1736% 13.3369 -74.6839);
  --color-blue-700:lab(36.9089% 35.0961 -85.6872);
  --color-gray-100:lab(96.1596% -.0823438 -1.13575);
  --color-gray-50:lab(98.2596% -.247031 -.706708);
  --color-slate-50:lab(98.1434% -.369519 -1.05966);
  --color-slate-100:lab(96.286% -.852436 -2.46847);
  --color-slate-300:lab(84.7652% -1.94535 -7.93337);
  --color-slate-400:lab(65.5349% -2.25151 -14.5072);
  --color-slate-500:lab(48.0876% -2.03595 -16.5814);
  --color-slate-600:lab(35.5623% -1.74978 -15.4316);
  --color-slate-800:lab(16.132% -.318035 -14.6672);
  --color-slate-900:lab(7.78673% 1.82345 -15.0537);

  /* 그림자: 원본은 ring/inset 레이어 4개가 앞에 붙은 형태로 계산된다. 같은 구조로 맞춘다. */
  --sh-empty:0 0 #0000,0 0 #0000,0 0 #0000,0 0 #0000;
  --sh-sm:var(--sh-empty),0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;
  --sh-md:var(--sh-empty),0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;
  --sh-lg:var(--sh-empty),0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;
  --sh-xl:var(--sh-empty),0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;
  --sh-2xl:var(--sh-empty),0 25px 50px -12px #00000040;
  --sh-xl-primary:var(--sh-empty),
    0 20px 25px -5px color-mix(in oklab,var(--color-primary)20%,transparent),
    0 8px 10px -6px color-mix(in oklab,var(--color-primary)20%,transparent);
}

/* ── 리셋 ───────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;border:0 solid;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;font-family:var(--font-sans);line-height:1.5;scroll-behavior:auto;
  tab-size:4;-webkit-tap-highlight-color:transparent}
body{font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--color-foreground);
  background-color:var(--color-white);-webkit-font-smoothing:antialiased;
  word-break:keep-all;overflow-wrap:break-word;overflow-x:hidden}
h1,h2,h3,h4{font-size:inherit;font-weight:inherit}
ul{list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;appearance:button}
img,svg{display:block;vertical-align:middle}
img{max-width:100%;height:auto}
[hidden]{display:none!important}

.page{min-height:100vh}

/* ── 컨테이너 ───────────────────────────────────────────────────────── */
.container{width:100%;margin-inline:auto;padding-inline:24px}
@media (min-width:40rem){.container{max-width:40rem}}
@media (min-width:48rem){.container{max-width:48rem}}
@media (min-width:64rem){.container{max-width:64rem}}
@media (min-width:80rem){.container{max-width:80rem}}
@media (min-width:96rem){.container{max-width:96rem}}

/* ── 헤더 ───────────────────────────────────────────────────────────── */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;
  transition-property:all;transition-timing-function:var(--ease);transition-duration:.3s;
  background-color:#0000;padding-block:20px}
.site-header.is-scrolled{padding-block:16px;
  background-color:color-mix(in oklab,var(--color-white)90%,transparent);
  backdrop-filter:blur(12px);box-shadow:var(--sh-sm)}

.header-inner{display:flex;align-items:center;justify-content:space-between}

.logo{display:flex;align-items:center}
.logo-box{position:relative;display:block;height:40px;width:192px}
.logo-img{height:100%;width:auto;object-fit:contain}

.site-nav{display:none}
@media (min-width:48rem){.site-nav{display:flex;align-items:center}}
.site-nav .nav-item + .nav-item{margin-inline-start:40px}
.nav-item{position:relative}
.nav-item > a{position:relative;display:flex;align-items:center;padding-block:8px;
  font-size:18px;line-height:28px;font-weight:700;
  transition-property:var(--tr-colors);transition-timing-function:var(--ease);transition-duration:.15s;
  color:color-mix(in oklab,var(--color-white)90%,transparent)}
.nav-item > a:hover{color:var(--color-white)}
.nav-underline{position:absolute;bottom:-4px;left:0;width:100%;height:2px;
  background-color:var(--color-white);transform-origin:left;scale:0 1;
  transition-property:var(--tr-transform);transition-timing-function:var(--ease);transition-duration:.15s}
.nav-item > a:hover .nav-underline{scale:1 1}
.site-header.is-scrolled .nav-item > a{color:var(--color-slate-800)}
.site-header.is-scrolled .nav-item > a:hover{color:var(--color-primary)}
.site-header.is-scrolled .nav-underline{background-color:var(--color-primary)}

.menu-toggle{display:block}
.menu-toggle svg{width:24px;height:24px;color:var(--color-white)}
.site-header.is-scrolled .menu-toggle svg{color:var(--color-foreground)}
.menu-toggle .icon-close{display:none}
.menu-toggle[aria-expanded="true"] .icon-menu{display:none}
.menu-toggle[aria-expanded="true"] .icon-close{display:block;color:var(--color-foreground)}
@media (min-width:48rem){.menu-toggle{display:none}}

.mobile-menu{position:absolute;top:100%;left:0;right:0;padding-block:24px;
  background-color:var(--color-white);box-shadow:var(--sh-xl);
  border-top:1px solid var(--color-gray-100);
  opacity:0;transform:translateY(-20px);transition:opacity .3s ease-out,transform .3s ease-out}
.mobile-menu.is-open{opacity:1;transform:none}
@media (min-width:48rem){.mobile-menu{display:none}}
.mobile-menu-inner{display:flex;flex-direction:column;padding-inline:24px}
.mobile-menu-inner > div + div{margin-top:16px}
.mobile-menu-inner a{display:block;padding-block:8px;font-size:20px;line-height:28px;
  font-weight:600;color:var(--color-foreground)}

/* ── 히어로 ─────────────────────────────────────────────────────────── */
.hero{position:relative;height:100vh;min-height:700px;display:flex;align-items:center;
  justify-content:center;overflow:hidden;background-color:var(--color-slate-900)}
.hero-bg-wrap{position:absolute;inset:0;z-index:0}
.hero-scrim{position:absolute;inset:0;z-index:10;
  background-image:linear-gradient(to bottom,
    color-mix(in oklab,var(--color-black)60%,transparent) 0%,
    color-mix(in oklab,var(--color-black)40%,transparent) 50%,
    color-mix(in oklab,var(--color-slate-900)90%,transparent) 100%)}
.hero-bg{position:absolute;inset:0;background-image:url(assets/hero-bg.jpg);
  background-size:cover;background-position:center;transform:scale(1.05)}
.hero-container{position:relative;z-index:20;text-align:center}
.hero-title{margin-bottom:24px;font-size:36px;line-height:1.25;font-weight:900;color:var(--color-white)}
.hero-title .accent{color:var(--color-blue-400)}
.hero-lead{max-width:672px;margin-inline:auto;margin-bottom:40px;font-size:20px;
  line-height:1.625;font-weight:300;color:var(--color-slate-300)}
.hero-lead strong{font-weight:700;color:var(--color-white)}
.only-md{display:none}
.hero-actions{display:flex;flex-direction:column;align-items:center;justify-content:center}
.btn-primary{display:flex;align-items:center;justify-content:center;
  padding:16px 32px;font-size:18px;line-height:28px;font-weight:700;
  color:var(--color-white);background-color:var(--color-primary);border-radius:3.40282e38px;
  transition-property:all;transition-timing-function:var(--ease);transition-duration:.15s}
.btn-primary:hover{background-color:var(--color-blue-700);box-shadow:var(--sh-xl-primary)}
.hero-indicator{position:absolute;bottom:40px;left:50%;z-index:20;transform:translateX(-50%)}
.hero-indicator-line{width:1px;height:48px;
  background-image:linear-gradient(to bottom,
    color-mix(in oklab,var(--color-white)60%,transparent) 0%,transparent 100%)}

@media (min-width:48rem){
  .hero-title{font-size:60px}
  .hero-lead{font-size:24px}
  .only-md{display:block}
}
@media (min-width:64rem){.hero-title{font-size:72px}}

/* ── 인사말 ─────────────────────────────────────────────────────────── */
.greetings{padding-block:96px;background-color:var(--color-white);overflow:hidden}
.greetings-row{display:flex;flex-direction:column;align-items:center;gap:64px}
.greetings-col-text{width:100%}
.greetings-col-photo{position:relative}
@media (min-width:64rem){
  .greetings-row{flex-direction:row}
  .greetings-col-text{width:60%}
  .greetings-col-photo{width:40%}
}
.section-label{margin-bottom:16px;font-size:14px;line-height:20px;font-weight:700;
  text-transform:uppercase;letter-spacing:.2em;color:var(--color-primary)}
.greetings-title{margin-bottom:32px;font-size:36px;line-height:1.25;font-weight:900;
  color:var(--color-slate-900)}
.greetings-body{font-size:18px;line-height:1.625;color:var(--color-slate-600)}
.greetings-body > * + *{margin-top:32px}
.greetings-quote{padding:8px 0 8px 24px;border-left:4px solid var(--color-blue-500)}
.greetings-quote p{font-size:24px;line-height:32px;font-weight:700;color:var(--color-slate-800)}
.greetings-quote p:first-child{margin-bottom:8px}
.greetings-para > p + p{margin-top:8px}
.greetings-sign{margin-top:48px;padding-top:32px;border-top:1px solid var(--color-slate-100);
  font-style:italic;color:var(--color-slate-500)}
.greetings-sign-name{margin-bottom:8px;font-size:24px;line-height:32px;font-weight:700;
  font-style:normal;color:var(--color-slate-900)}
.greetings-sign-desc{font-size:14px;line-height:20px}
.greetings-photo{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:16px;
  background-color:var(--color-secondary);box-shadow:var(--sh-2xl)}
.greetings-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:top;scale:1.25;transform-origin:top;color:#0000}
.greetings-dot-bl{position:absolute;bottom:-24px;left:-24px;width:128px;height:128px;
  border-radius:3.40282e38px;z-index:-1;
  background-color:color-mix(in oklab,var(--color-primary)5%,transparent)}
.greetings-dot-tr{position:absolute;top:-24px;right:-24px;width:192px;height:192px;
  border-radius:3.40282e38px;z-index:-1;background-color:var(--color-slate-100)}
@media (min-width:48rem){.greetings-title{font-size:48px}}

/* ── 주요 성과 ──────────────────────────────────────────────────────── */
.results{padding-block:96px;background-color:var(--color-secondary)}
.section-head{margin-bottom:64px;text-align:center}
.section-title{font-size:36px;line-height:40px;font-weight:900;color:var(--color-slate-900)}
@media (min-width:48rem){.section-title{font-size:48px;line-height:1}}
.team-title{margin-bottom:24px}

.tabs-wrap{display:flex;justify-content:center;margin-bottom:48px}
.tabs{display:inline-flex;padding:4px;background-color:var(--color-white);
  border-radius:3.40282e38px;box-shadow:var(--sh-sm);border:1px solid var(--color-slate-100)}
.tab{padding:10px 32px;border-radius:3.40282e38px;font-size:16px;line-height:24px;
  font-weight:700;color:var(--color-slate-500);
  transition-property:all;transition-timing-function:var(--ease);transition-duration:.15s}
.tab:hover{color:var(--color-primary)}
.tab.is-active{background-color:var(--color-primary);color:var(--color-white);box-shadow:var(--sh-md)}

.result-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:32px}
@media (min-width:48rem){.result-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.result-card{padding:32px;background-color:var(--color-white);border-radius:16px;
  border:1px solid var(--color-slate-100);box-shadow:var(--sh-sm);
  transition-property:box-shadow;transition-timing-function:var(--ease);transition-duration:.15s}
.result-card:hover{box-shadow:var(--sh-md)}
.result-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;
  margin-bottom:24px;border-radius:12px;
  background-color:color-mix(in oklab,var(--color-primary)10%,transparent);
  transition-property:var(--tr-transform);transition-timing-function:var(--ease);transition-duration:.3s}
.result-card:hover .result-icon{scale:1.1 1.1}
.result-icon svg{width:24px;height:24px;color:var(--color-primary)}
.result-title{margin-bottom:16px;font-size:24px;line-height:32px;font-weight:700;
  color:var(--color-slate-900)}
.result-desc{font-size:16px;line-height:1.625;color:var(--color-slate-500)}

/* ── 구성원 ─────────────────────────────────────────────────────────── */
.team{padding-block:96px;background-color:var(--color-white)}
.team-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:40px}
@media (min-width:48rem){.team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.member{position:relative}
.member-frame{position:relative;aspect-ratio:3/4;margin-bottom:24px;border-radius:16px;
  overflow:hidden;background-color:var(--color-secondary);
  transition-property:all;transition-timing-function:var(--ease);transition-duration:.5s}
.member:hover .member-frame{box-shadow:var(--sh-2xl)}
.member-placeholder{position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;color:var(--color-slate-300)}
.member-placeholder svg{width:96px;height:96px;opacity:.2}
.member-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center 10%;scale:1 1;color:#0000;
  transition-property:var(--tr-transform);transition-timing-function:var(--ease);transition-duration:.7s}
.member:hover .member-photo{scale:1.05 1.05}
.member-scrim{position:absolute;inset:0;opacity:0;
  transition-property:opacity;transition-timing-function:var(--ease);transition-duration:.3s;
  background-image:linear-gradient(to top,
    color-mix(in oklab,var(--color-slate-900)60%,transparent) 0%,transparent 100%)}
.member:hover .member-scrim{opacity:1}
.member-cta{position:absolute;bottom:24px;left:24px;right:24px;opacity:0;translate:0 16px;
  transition-property:all;transition-timing-function:var(--ease);transition-duration:.3s}
.member:hover .member-cta{opacity:1;translate:0 0}
.member-cta a{display:block;width:100%;padding-block:12px;text-align:center;
  font-size:16px;line-height:24px;font-weight:700;color:var(--color-primary);
  background-color:var(--color-white);border-radius:8px;box-shadow:var(--sh-lg)}
.member-meta{text-align:center}
.member-name{margin-bottom:4px;font-size:30px;line-height:36px;font-weight:700;
  color:var(--color-slate-900)}
.member-role{margin-bottom:16px;font-size:16px;line-height:24px;font-weight:500;
  color:var(--color-primary)}

/* ── 고객사 ─────────────────────────────────────────────────────────── */
.clients{padding-block:80px;background-color:var(--color-secondary);overflow:hidden;
  border-top:1px solid var(--color-secondary);border-bottom:1px solid var(--color-secondary)}
.clients-head{margin-bottom:48px;text-align:center}
.marquee{position:relative;display:flex;overflow-x:hidden}
.marquee-track{display:flex;white-space:nowrap;padding-block:16px;
  animation:marquee-scroll 60s linear infinite}
@keyframes marquee-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.client-logo{position:relative;display:flex;align-items:center;justify-content:center;
  width:160px;height:64px;margin-inline:48px;flex:none;
  filter:grayscale(1);opacity:.6;
  transition-property:all;transition-timing-function:var(--ease);transition-duration:.3s}
.client-logo:hover{filter:grayscale(0);opacity:1}
.client-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;color:#0000}
.marquee-fade{position:absolute;top:0;bottom:0;width:128px;z-index:10}
.marquee-fade--left{left:0;background-image:linear-gradient(to right,var(--color-slate-50) 0%,transparent 100%)}
.marquee-fade--right{right:0;background-image:linear-gradient(to left,var(--color-slate-50) 0%,transparent 100%)}

/* ── 푸터 ───────────────────────────────────────────────────────────── */
.site-footer{padding-block:64px;background-color:var(--color-footer);color:var(--color-slate-300)}
.footer-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:48px;margin-bottom:48px}
@media (min-width:48rem){
  .footer-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .footer-brand{grid-column:span 2/span 2}
}
.footer-logo-wrap{margin-bottom:24px}
.footer-logo{height:40px;width:auto;object-fit:contain}
.footer-desc{max-width:448px;margin-bottom:24px;font-size:16px;line-height:1.625;
  color:var(--color-slate-400)}
.footer-brand-tail{display:flex}
.footer-brand-tail > * + *{margin-inline-start:16px}
.footer-heading{margin-bottom:24px;font-size:16px;line-height:24px;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;color:var(--color-slate-300)}
.footer-links{font-size:16px;line-height:24px}
.footer-links li + li{margin-top:12px}
.footer-links a{color:var(--color-slate-400);
  transition-property:var(--tr-colors);transition-timing-function:var(--ease);transition-duration:.15s}
.footer-links a:hover{color:var(--color-white)}
.footer-contact li + li{margin-top:16px}
.contact-row{display:flex;align-items:center;color:var(--color-slate-400)}
.contact-row--top{align-items:flex-start}
.contact-icon{width:20px;height:20px;margin-right:12px;flex-shrink:0;color:var(--color-slate-500)}
.contact-row span{font-size:16px;line-height:24px}

.footer-bottom{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:48px;
  align-items:center;padding-top:32px;border-top:1px solid var(--color-slate-800);
  font-size:16px;line-height:24px;font-weight:700;color:var(--color-slate-500)}
@media (min-width:48rem){
  .footer-bottom{grid-template-columns:repeat(4,minmax(0,1fr))}
  .footer-copy{grid-column:span 2/span 2}
}
.footer-disclaimer-link{font-size:16px;
  transition-property:var(--tr-colors);transition-timing-function:var(--ease);transition-duration:.15s}
.footer-disclaimer-link:hover{color:var(--color-white)}
.footer-social{display:flex;align-items:center;gap:16px}
.footer-social a{transition-property:opacity;transition-timing-function:var(--ease);transition-duration:.15s}
.footer-social a:hover{opacity:.8}
.footer-social img{width:24px;height:24px;object-fit:contain}

/* ── 면책공고 모달 ──────────────────────────────────────────────────── */
.modal-root{position:fixed;inset:0;z-index:100;display:flex;align-items:center;
  justify-content:center;padding:16px}
@media (min-width:40rem){.modal-root{padding:24px}}
.modal-backdrop{position:absolute;inset:0;opacity:0;transition:opacity .25s;
  background-color:color-mix(in oklab,var(--color-black)60%,transparent);
  backdrop-filter:blur(8px)}
.modal-root.is-open .modal-backdrop{opacity:1}
.modal-panel{position:relative;width:100%;max-width:672px;max-height:85vh;display:flex;
  flex-direction:column;overflow:hidden;background-color:var(--color-white);
  border-radius:12px;box-shadow:var(--sh-2xl);
  opacity:0;transform:scale(.95) translateY(20px);
  transition:opacity .25s,transform .25s}
.modal-root.is-open .modal-panel{opacity:1;transform:none}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:24px;
  border-bottom:1px solid var(--color-gray-100);background-color:var(--color-white);z-index:10}
.modal-title{font-size:20px;line-height:28px;font-weight:700;color:var(--color-slate-900)}
.modal-x{padding:8px;border-radius:3.40282e38px;color:var(--color-slate-500);
  transition-property:var(--tr-colors);transition-timing-function:var(--ease);transition-duration:.15s}
.modal-x:hover{background-color:var(--color-gray-100)}
.modal-x svg{width:20px;height:20px}
.modal-body{flex:1 1 0%;overflow-y:auto;padding:24px}
@media (min-width:48rem){.modal-body{padding:32px}}
.modal-prose{color:var(--color-slate-600)}
.modal-prose > p + p{margin-top:16px}
.modal-foot{display:flex;justify-content:flex-end;padding:24px;
  border-top:1px solid var(--color-gray-100);background-color:var(--color-gray-50)}
.modal-confirm{padding:8px 24px;font-size:16px;line-height:24px;font-weight:500;
  color:var(--color-white);background-color:var(--color-slate-900);border-radius:8px;
  transition-property:var(--tr-colors);transition-timing-function:var(--ease);transition-duration:.15s}
.modal-confirm:hover{background-color:var(--color-slate-800)}

/* ── 등장 애니메이션 상태 ───────────────────────────────────────────── */
.hero-title,.hero-lead,.hero-actions{opacity:0;transform:translateY(30px)}
.hero-anim .hero-title,.hero-anim .hero-lead,.hero-anim .hero-actions{
  transition:opacity .8s cubic-bezier(0,0,.58,1),transform .8s cubic-bezier(0,0,.58,1)}
.hero-anim .hero-title{transition-delay:.1s}
.hero-anim .hero-lead{transition-delay:.3s}
.hero-anim .hero-actions{transition-delay:.5s}
.hero-anim.is-in .hero-title,.hero-anim.is-in .hero-lead,.hero-anim.is-in .hero-actions{
  opacity:1;transform:none}

.hero-indicator{animation:hero-bob 2s infinite}
@keyframes hero-bob{
  0%{transform:translate(-50%,0);animation-timing-function:cubic-bezier(.42,0,.58,1)}
  50%{transform:translate(-50%,10px);animation-timing-function:cubic-bezier(.42,0,.58,1)}
  100%{transform:translate(-50%,0)}}

[data-reveal-item]{opacity:0;transform:translateY(20px);
  transition:opacity .6s cubic-bezier(0,0,.58,1),transform .6s cubic-bezier(0,0,.58,1)}
[data-reveal="stagger"].is-in [data-reveal-item]{opacity:1;transform:none}

[data-reveal="photo"]{opacity:0;transform:translateX(30px) scale(.9);
  transition:opacity 1s cubic-bezier(0,0,.58,1),transform 1s cubic-bezier(0,0,.58,1)}
[data-reveal="photo"].is-in{opacity:1;transform:none}

[data-reveal="head"]{opacity:0;transform:translateY(-20px);
  transition:opacity .6s,transform .6s}
[data-reveal="head"].is-in{opacity:1;transform:none}

[data-reveal="tabs"]{opacity:0;transform:scale(.9);
  transition:opacity .5s .2s,transform .5s .2s}
[data-reveal="tabs"].is-in{opacity:1;transform:none}

[data-reveal="grid"]{opacity:0;transform:translateY(40px);
  transition:opacity .6s .3s,transform .6s .3s}
[data-reveal="grid"].is-in{opacity:1;transform:none}

[data-reveal="team"]{opacity:0;transition:opacity .3s}
[data-reveal="team"].is-in{opacity:1}
[data-reveal="team"] .member{opacity:0;transform:translateY(30px);
  transition:opacity .6s cubic-bezier(0,0,.58,1),transform .6s cubic-bezier(0,0,.58,1)}
[data-reveal="team"].is-in .member{opacity:1;transform:none}
[data-reveal="team"].is-in .member:nth-child(2){transition-delay:.2s}
[data-reveal="team"].is-in .member:nth-child(3){transition-delay:.4s}

[data-reveal="marquee"]{opacity:0;transition:opacity 1s}
[data-reveal="marquee"].is-in{opacity:1}

/* 성과 카드 탭 전환 */
.result-card{opacity:0;transform:translateY(20px);
  transition:opacity .4s,transform .4s,box-shadow .15s}
.result-grid.cards-in .result-card{opacity:1;transform:none}
.result-grid.cards-in .result-card:nth-child(2){transition-delay:.1s}
.result-grid.cards-in .result-card:nth-child(3){transition-delay:.2s}
.result-grid.cards-out .result-card{opacity:0;transform:translateY(-20px)}
.result-grid.cards-out .result-card:nth-child(2){transition-delay:.1s}
.result-grid.cards-out .result-card:nth-child(3){transition-delay:.2s}

@media (prefers-reduced-motion:reduce){
  .marquee-track,.hero-indicator{animation:none}
  .hero-title,.hero-lead,.hero-actions,[data-reveal-item],[data-reveal="photo"],
  [data-reveal="head"],[data-reveal="tabs"],[data-reveal="grid"],[data-reveal="team"],
  [data-reveal="team"] .member,[data-reveal="marquee"],.result-card{
    opacity:1!important;transform:none!important;transition-duration:.01ms!important}
}
