:root {
  --dur-hero: 900ms;
  --ease-in-out: cubic-bezier(.22, 1, .36, 1);
  --ease-draw: cubic-bezier(.16, 1, .3, 1);
}

.signature-opening {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  place-items: center;
  overflow: hidden;
  background: #071c2c;
  color: #fff;
  clip-path: polygon(0% 0%, 120% 0%, 100% 100%, -20% 100%);
}

.intro-pending .signature-opening { display: grid; }
.motion.intro-pending .signature-opening__logo { clip-path: inset(0 100% 0 0); }
.motion.intro-pending .signature-opening__line, .motion.intro-pending .signature-opening__brush { transform: scaleX(0); }
.signature-opening__identity { position: relative; z-index: 2; width: min(68vw, 440px); }
.signature-opening__logo .brand__img { width: 100%; height: auto; }
.signature-opening__line { display: block; height: 2px; margin-top: 26px; background: #ea5514; transform-origin: left; }
.signature-opening__brush { position: absolute; inset: 62% -10% auto; height: clamp(16px, 5vw, 72px); background: linear-gradient(90deg, #c9470e, #ea5514 45%, #ff7a32); mask: var(--mask-brush-fill) center / 100% 100% no-repeat; rotate: -12deg; transform-origin: left; }
.signature-opening__skip { position: absolute; right: max(24px, env(safe-area-inset-right)); bottom: max(24px, env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 24px; min-height: 44px; padding: 8px; color: #fff; font: 500 11px var(--font-en); letter-spacing: .18em; background: transparent; border: 0; cursor: pointer; }
.signature-opening__skip:focus-visible { outline: 1px solid #fff; outline-offset: 4px; }
.intro-pending :is(.cursor, .cursor-trail) { display: none; }
.intro-pending, .intro-pending * { cursor: auto !important; }

.brush-hero__index i { position: relative; }
.brush-hero__accent { position: absolute; top: -2px; left: 0; width: 40%; height: 5px; background: #ea5514; mask: var(--mask-brush-line) center / 100% 100% no-repeat; transform-origin: left; pointer-events: none; }
.brush-home .brush-hero h1 > .line { padding-inline: .04em; margin-inline: -.04em; }
.brush-service__number { color: var(--color-brand); }
.brush-service { --service-line: 1; }
.brush-home .brush-service::before { transform: scaleX(var(--service-line)); transition: transform var(--dur-normal) var(--ease-out); }
.brush-home .brush-service:is(:hover, :focus-within)::before { transform: scaleX(1.8); }
.brush-home .brush-issue:hover .brush-issue__image { transform: scale(1.035); }
.brush-home .brush-link .arrow { transition: transform var(--dur-normal) var(--ease-out); }
.brush-home .brush-link:is(:hover, :focus-visible) .arrow { transform: translateX(10px); }
.brush-news-card { position: relative; }
.brush-news-card::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 5px; background: var(--color-brand); mask: var(--mask-brush-line) center / 100% 100% no-repeat; transform: scaleX(0); transform-origin: left; transition: transform var(--dur-normal) var(--ease-out); }
.brush-news-card:is(:hover, :focus-visible)::after { transform: scaleX(1); }
.brush-news-card:is(:hover, :focus-visible) h3 { text-decoration: none; }
.brush-film-choice__name, .works-card__title { transition: transform var(--dur-normal) var(--ease-out); }
.brush-film-choice:is(:hover, :focus-visible) .brush-film-choice__name,
.works-card__link:is(:hover, :focus-visible) .works-card__title { transform: translateX(4px); }
.works-card__link:is(:hover, :focus-visible) .works-card__arrow { transform: translate(6px, -4px); }

.global-menu { background: var(--color-brand); transition: clip-path 400ms var(--ease-out) 100ms; }
.global-menu::before { content: ''; position: fixed; inset: 0; min-height: 100%; background: var(--color-navy-deep); transform: scaleY(0); transform-origin: top; transition: transform 350ms var(--ease-out) 60ms; }
.global-menu.is-open { transition-delay: 0s; }
.global-menu.is-open::before { transform: scaleY(1); transition-delay: 100ms; }
.global-menu__item, .global-menu__side { transform: translateY(24px); transition: opacity 300ms var(--ease-out), transform 400ms var(--ease-out); }
.global-menu.is-open .global-menu__item { transition-delay: calc(180ms + var(--i) * 40ms); }
.global-menu.is-open .global-menu__ja { transition-delay: calc(210ms + var(--i) * 40ms); }
.global-menu.is-open .global-menu__side, .global-menu.is-open .global-menu__words { transition-delay: 260ms; }
.global-menu__brush { transition-duration: 600ms; }
.global-menu.is-open .global-menu__brush { transition-delay: 200ms; }

.form-label { transition: transform var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out); }
.form-field:focus-within .form-label { transform: translateY(-3px); color: var(--color-brand-text); }
.form-control:focus, .contact-form .form-control:focus { border-color: var(--color-brand); outline: 1px solid var(--color-brand); }
.form-control[aria-invalid="true"]:focus, .contact-form .form-control[aria-invalid="true"]:focus { border-color: var(--color-required); outline-color: var(--color-required); }
.contact-done { position: relative; }
.contact-done::after { content: ''; position: absolute; inset: auto 0 0; height: 2px; background: var(--color-brand); transform-origin: left; animation: completion-line 600ms var(--ease-out) both; }
@keyframes completion-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.cursor.is-view .cursor__circle { width: 54px; height: 54px; }
.cursor.is-link .cursor__circle { width: 48px; height: 48px; background: var(--color-navy-deep); }
.cursor.is-link .cursor__label { opacity: 1; color: #fff; }
.cursor.is-dark.is-link .cursor__circle { background: #fff; }
.cursor.is-dark.is-link .cursor__label { color: var(--color-navy-deep); }

@media (max-width: 1023px) {
  .cursor, .cursor-trail { display: none; }
  html.has-cursor, html.has-cursor * { cursor: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: 0s !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  .signature-opening { clip-path: none !important; }
  .signature-opening__brush { display: none; }
  .signature-opening__logo { clip-path: none !important; transform: none !important; }
  .signature-opening__line { transform: none !important; }
  .global-menu::before { transform: none; }
  .motion:not(.pp-failed) [data-pp-reveal] { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .form-field:focus-within .form-label, .brush-film-choice__name, .works-card__title { transform: none !important; }
}
