/* 퍼니셔엑틴 — motion */
@media (prefers-reduced-motion: reduce) {
  .fnx-rise,
  .fnx-rise-left,
  .fnx-fade,
  .fnx-open-line .fnx-display,
  .fnx-halo {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
}

@media (prefers-reduced-motion: no-preference) {
  html.fnx-js .fnx-rise,
  html.fnx-js .fnx-rise-left,
  html.fnx-js .fnx-fade {
    opacity: 0;
    visibility: visible !important;
    will-change: opacity, transform;
    transition:
      opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
      transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
  }

  html.fnx-js .fnx-rise {
    transform: translate3d(0, 36px, 0);
  }

  html.fnx-js .fnx-rise-left {
    transform: translate3d(-28px, 0, 0);
  }

  html.fnx-js .fnx-fade {
    transform: none;
  }

  html.fnx-js .fnx-rise.fnx-in,
  html.fnx-js .fnx-rise-left.fnx-in,
  html.fnx-js .fnx-fade.fnx-in {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  /* hero title stagger */
  html.fnx-js .fnx-open .fnx-open-stack .fnx-display,
  html.fnx-js .fnx-open .fnx-chip,
  html.fnx-js .fnx-open .fnx-open-side {
    opacity: 0;
    transform: translate3d(0, 40px, 0);
    visibility: visible !important;
  }

  html.fnx-js .fnx-open.fnx-hero-ready .fnx-open-stack .fnx-display,
  html.fnx-js .fnx-open.fnx-hero-ready .fnx-chip,
  html.fnx-js .fnx-open.fnx-hero-ready .fnx-open-side {
    animation: fnx-hero-up 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  }

  html.fnx-js .fnx-open.fnx-hero-ready .fnx-chip {
    animation-delay: 0.05s;
  }

  html.fnx-js .fnx-open.fnx-hero-ready .fnx-open-line .fnx-display {
    animation-delay: 0.14s;
  }

  html.fnx-js .fnx-open.fnx-hero-ready .fnx-open-stack > .fnx-display:nth-child(2) {
    animation-delay: 0.28s;
  }

  html.fnx-js .fnx-open.fnx-hero-ready .fnx-open-stack > .fnx-display:nth-child(3) {
    animation-delay: 0.42s;
  }

  html.fnx-js .fnx-open.fnx-hero-ready .fnx-open-side {
    animation-delay: 0.32s;
    animation-duration: 0.95s;
  }

  html.fnx-js .fnx-halo.fill {
    animation: fnx-halo-pulse 3.2s ease-in-out infinite;
  }

  html.fnx-js .fnx-halo.stroke {
    animation: fnx-halo-spin 12s linear infinite;
  }

  html.fnx-js .fnx-cta-wrap {
    transition: transform 0.25s ease, filter 0.25s ease;
  }

  html.fnx-js .fnx-cta-wrap:hover {
    transform: translateY(-2px);
    filter: brightness(1.05);
  }

  html.fnx-js .fnx-navlink .fnx-underline {
    transition: width 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  }

  html.fnx-js .fnx-navlink:hover .fnx-underline,
  html.fnx-js .fnx-navlink.fnx-active .fnx-underline {
    width: 100%;
  }

  html.fnx-js .fnx-foot-marquee {
    overflow: hidden;
  }

  html.fnx-js .fnx-foot-run {
    animation: fnx-marquee 28s linear infinite;
  }
}

@keyframes fnx-hero-up {
  from {
    opacity: 0;
    transform: translate3d(0, 40px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fnx-halo-pulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.85;
  }
  50% {
    transform: scale(1.08);
    opacity: 1;
  }
}

@keyframes fnx-halo-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes fnx-marquee {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}

/* brand / layout helpers kept */
html.fnx-js [style*="opacity:0"] {
  opacity: 1 !important;
  transform: none !important;
}

.fnx-brand {
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
}
.fnx-brand-mark {
  width: 36px !important;
  height: 36px !important;
  max-width: 36px !important;
  display: block;
  object-fit: contain;
}
.fnx-brand-text {
  color: #fff !important;
  font-family: "Space Grotesk", Manrope, sans-serif;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.02em;
  line-height: 1;
  white-space: nowrap;
}

.fnx-nav-row > .fnx-cta-wrap {
  display: none !important;
}

@media screen and (max-width: 991px) {
  .fnx-brand-mark {
    width: 32px !important;
    height: 32px !important;
    max-width: 32px !important;
  }
  .fnx-brand-text {
    font-size: 15px;
  }

  html.fnx-nav-open .fnx-nav-tray {
    opacity: 1;
    transform: translate(0, 0);
    pointer-events: auto;
  }
}


/* reel inquire form */
.fnx-reel-form{max-width:720px;margin-top:28px}
.fnx-reel-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fnx-reel-field{display:flex;flex-direction:column;gap:8px;color:inherit;font-size:14px}
.fnx-reel-field input,.fnx-reel-field select,.fnx-reel-field textarea{
  border:1px solid rgba(0,0,0,.18);background:#fff;padding:12px 14px;font:inherit;border-radius:0
}
.fnx-reel-wide{grid-column:1/-1}
.fnx-reel-agree{display:flex;gap:10px;align-items:flex-start;margin:18px 0 10px;font-size:14px}
.fnx-reel-consent-box{background:rgba(0,0,0,.04);padding:14px 16px;font-size:13px;line-height:1.6;margin-bottom:16px}
.fnx-reel-consent-box p{margin:0 0 6px}
.fnx-reel-submit{
  appearance:none;border:0;background:var(--_colors---secondary-200,#c7ff60);
  color:#111;font-weight:700;padding:14px 22px;cursor:pointer;font-family:inherit
}
.fnx-reel-msg{margin-top:12px;font-size:14px}
@media(max-width:767px){.fnx-reel-grid{grid-template-columns:1fr}}

.fnx-brand-text{font-family:"Hahmlet",serif!important}

/* accordion: studio + pricing FAQ */
.who-we-are-content-wrap,
.faq-content{
  transition:height .35s cubic-bezier(.22,1,.36,1);
}
.wwa-line{
  transition:transform .3s ease,opacity .3s ease;
}
.who-we-are-item.is-open .wwa-line.rotate{
  transform:rotate(0deg);
  opacity:0;
}
.faq-arrow{
  transition:transform .3s ease;
}
.faq-item.is-open .faq-arrow{
  transform:rotate(180deg);
}
.who-we-are-title-wrap,
.faq-title{
  cursor:pointer;
  user-select:none;
}

/* studio voice: marquee scroll + text tabs (no partner logos) */
.fnx-voice-ticker{
  display:flex;
  width:max-content;
  animation:fnx-voice-scroll 22s linear infinite;
}
@keyframes fnx-voice-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@media (prefers-reduced-motion:reduce){
  .fnx-voice-ticker{animation:none}
}
.fnx-voice-menu{
  position:relative!important;
  inset:auto!important;
  display:flex!important;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin:28px 0 8px;
}
.fnx-voice-tab,
.fnx-voice-tab.first,
.fnx-voice-tab.second,
.fnx-voice-tab.third,
.fnx-voice-tab.fourth{
  position:relative!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  bottom:auto!important;
  width:auto!important;
  height:auto!important;
  padding:10px 18px!important;
  border-radius:999px;
  background:rgba(255,255,255,.08)!important;
  border:1px solid rgba(255,255,255,.18);
  color:#fff!important;
  text-decoration:none;
}
.fnx-voice-tab.fnx-active,
.fnx-voice-tab.fnx-tab-on{
  background:var(--_colors---secondary-200,#c7ff60)!important;
  color:#111!important;
  border-color:transparent;
}
.fnx-voice-tab-label{
  font-size:14px;
  font-weight:600;
  white-space:nowrap;
}
.fnx-voice-logo{display:none!important}
.fnx-voice-panel{
  margin:0 auto;
}
.fnx-voice-pane{
  display:none;
}
.fnx-voice-pane.fnx-tab-on{
  display:block;
}
.fnx-voice-box{
  flex-direction:column;
  align-items:stretch;
}


/* footer brand marquee */
.fnx-foot-marquee{
  overflow:hidden;
  display:flex!important;
  width:max-content;
  animation:fnx-foot-scroll 28s linear infinite;
}
.fnx-foot-run{animation:none!important}
@keyframes fnx-foot-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@media (prefers-reduced-motion:reduce){
  .fnx-foot-marquee{animation:none}
}

/* image fit guards — keep template frames, fill slots cleanly */
.fnx-craft-ico,
.service-image-icon{
  object-fit:cover!important;
}
.fnx-work-shot{
  object-fit:cover!important;
}
.who-we-are-image{
  border-radius:12px;
  width:100%;
  max-width:256px;
  height:auto;
  aspect-ratio:16/10;
  object-fit:cover;
}
.image-background-image,
.image-background-image.is-service,
.about-image,
.service-image,
.form-image,
.question-image,
.fnx-shot-box{
  object-fit:cover;
  max-width:100%;
}
.fnx-brand-mark{
  object-fit:contain;
  flex:none;
}
.fnx-open.fnx-is-pin{
  z-index:1;
}
.fnx-band,
.fnx-pin,
.fnx-bg-soft{
  position:relative;
  z-index:2;
}

/* Korean line breaks — avoid 맞춥니/다 style splits */
.fnx-lead,
.fnx-display,
.fnx-title,
.fnx-subtitle,
.fnx-copy,
h1, h2, h3, h4, h5, p {
  word-break: keep-all;
  overflow-wrap: break-word;
  line-break: strict;
}
.fnx-craft-item{
  align-items:center!important;
}
.fnx-craft-body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:180px;
}
@media (max-width: 991px){
  .fnx-craft-body{min-height:0}
  .fnx-craft-grid{grid-row-gap:48px!important}
}


