/* motion — single ownership; responsive overrides remain with their component. */
button:disabled {
  opacity:.35;
}

.persona-rail button:before {
  transition:width .2s,background .2s;
}

.persona-rail button:hover:before {
  width:20px;
  background:var(--accent);
}

.header nav>a::after {
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s;
}

.header nav>button::after {
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s;
}

.utility a::after {
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s;
}

.header nav>:hover::after {
  transform:scaleX(1);
}

.header nav>:focus-visible::after {
  transform:scaleX(1);
}

.header nav>[aria-expanded=true]::after {
  transform:scaleX(1);
}

.header nav>[aria-current]::after {
  transform:scaleX(1);
}

.utility a:hover::after {
  transform:scaleX(1);
}

.utility a:focus-visible::after {
  transform:scaleX(1);
}

.utility a[aria-current]::after {
  transform:scaleX(1);
}

.hero-heading>div:first-child {
  opacity:var(--hero-title-opacity);
}

.hero-heading .eyebrow {
  opacity:1;
}

.persona-progress span {
  transform-origin:left;
}

.menu-item {
  transition:opacity .2s,color .2s;
}

.menu-grid.has-featured .menu-item {
  opacity:.4;
}

.menu-grid.has-featured .menu-item.is-featured {
  opacity:1;
}

.menu-item:hover {
  color:#111;
}

.menu-shortcuts>a:hover {
  text-decoration:underline;
  text-underline-offset:4px;
}

.hero-track {
  will-change:transform;
}

.hero-media {
  will-change:transform;
}

.hero-copy {
  will-change:transform;
}

.hero-progress span {
  will-change:transform;
}

.button {
  transition:background-color .18s;
}

.button:not(:disabled):is(:hover,:focus-visible) {
  background:#b9eb36;
}

.button:not(:disabled):is(:hover,:focus-visible) > span:last-child {
  transform:translate(2px,-2px);
}

.button > span:last-child {
  transition:transform .18s;
}

body[data-motion="off"] .button {
  transition:none;
}

body[data-motion="off"] .button > span:last-child {
  transition:none;
}

@media(prefers-reduced-motion:reduce) {
  * {
    animation-duration:.01ms!important;
    transition-duration:.01ms!important;
  }
}

@media(prefers-reduced-motion:reduce) {
  *::before {
    animation-duration:.01ms!important;
    transition-duration:.01ms!important;
  }
}

@media(prefers-reduced-motion:reduce) {
  *::after {
    animation-duration:.01ms!important;
    transition-duration:.01ms!important;
  }
}

@media(prefers-reduced-motion:reduce) {
  .hero-track {
    will-change:auto;
  }
}

@media(prefers-reduced-motion:reduce) {
  .hero-media {
    will-change:auto;
  }
}

@media(prefers-reduced-motion:reduce) {
  .hero-copy {
    will-change:auto;
  }
}

.hero-progress i {
  transform:scaleX(0);
  transform-origin:left;
}

@property --fade-l {
  syntax:'<length>';
  inherits:false;
  initial-value:0px;
}

@property --fade-r {
  syntax:'<length>';
  inherits:false;
  initial-value:0px;
}

.persona-viewport {
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%);
  transition:--fade-l .35s,--fade-r .35s;
}

.aff-peek-off .persona-viewport {
  -webkit-mask-image:none;
  mask-image:none;
}

.card-explore {
  opacity:0;
  transform:translateX(-12px);
  transition:opacity .25s,transform .35s cubic-bezier(.2,.8,.2,1);
}

.persona-card .card-media {
  transition:scale .6s cubic-bezier(.2,.8,.2,1);
}

.persona-card:hover .card-explore {
  opacity:1;
  transform:none;
}

.persona-card:focus-within .card-explore {
  opacity:1;
  transform:none;
}

.persona-card:hover .card-media {
  scale:1.03;
}

body[data-motion=off] .card-explore {
  transition:none;
}

body[data-motion=off] .persona-card .card-media {
  transition:none;
}

.cursor-hint {
  position:fixed;
  left:0;
  top:0;
  z-index:60;
  pointer-events:none;
  width:76px;
  height:76px;
  border-radius:50%;
  background:var(--accent);
  color:var(--ink);
  display:grid;
  place-items:center;
  font-size:12px;
  font-weight:600;
  letter-spacing:.04em;
  white-space:nowrap;
  visibility:hidden;
}

html.has-cursor-hint [data-cursor] {
  cursor:none;
}

html.has-cursor-hint [data-cursor] * {
  cursor:none;
}

.scroll-cue {
  transform:translateX(-50%);
}

.scroll-cue-line:after {
  animation:cue 1.8s cubic-bezier(.6,0,.2,1) infinite;
  transform-origin:top;
}

@keyframes cue {0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

body[data-motion=off] .scroll-cue-line:after {
  animation:none;
  transform:none;
}

.how-line span {
  transform-origin:left;
  transform:scaleX(0);
}

.how-grid article h3 {
  opacity:calc(.3 + var(--step-on)*.7);
}

body[data-motion=off] .how-line span {
  transform:none;
}

@media(prefers-reduced-motion:reduce) {
  .scroll-cue-line:after {
    animation:none;
    transform:none;
  }
}

@media(prefers-reduced-motion:reduce) {
  .how-line span {
    transform:none;
  }
}

@media(prefers-reduced-motion:reduce) {
  .cursor-hint {
    display:none;
  }
}


@media(max-width:760px) and (prefers-reduced-motion:no-preference) {
 body:not([data-motion=off]) .scroll-cue-line { animation:mobile-cue 1.8s ease-in-out infinite; }
}
@keyframes mobile-cue { 0%,100% { transform:translateY(0); } 50% { transform:translateY(8px); } }

/* story pages (서비스가이드 · 회사소개) */
.is-stepping [data-step] {
  transition:opacity .45s,background .3s,color .3s,border-color .3s;
}

.t-name,
.anchor-model li {
  transition:color .3s;
}

.chapter-bar {
  transition:transform .35s cubic-bezier(.3,0,.2,1),background .3s,color .3s,border-color .3s;
}

.next-page-title>span,
.channel-card,
.capability-grid li {
  transition:transform .25s,background .2s,color .2s;
}

.next-page:hover .next-page-title>span,
.next-page:focus-visible .next-page-title>span {
  transform:translateX(12px);
}

.next-page .plate-media {
  transition:transform .8s cubic-bezier(.2,0,.1,1);
}

.next-page:hover .plate-media,
.next-page:focus-visible .plate-media {
  transform:scale(1.04);
}

.sim-bar i {
  transition:transform .6s cubic-bezier(.3,0,.2,1);
}

@media(prefers-reduced-motion:reduce) {
  .is-stepping [data-step],
  .chapter-bar,
  .sim-bar i,
  .next-page .plate-media {
    transition:none;
  }
}
