/* Cover55 runtime — rev4 timeline/geometry (motion-preview/cover55-proof.css cover block only). */
.c55-cover {
  --c55-gold: #e8cf7a;
  --v8-cover-ready: 1;
  --c55-t: 0ms;
  --c55-u: 0.8;
  --c55-S: 40;
  --c55-fx: 0px;
  --c55-fy: 0px;
  position: fixed;
  inset: 0;
  z-index: 10000;
  overflow: hidden;
  isolation: isolate;
  contain: layout paint;
  pointer-events: none;
  visibility: hidden;
}
.c55-cover[hidden] {
  display: none !important;
}
.c55-cover[data-state] {
  visibility: visible;
  /* Opaque overlay: first tap dismisses without activating obscured page controls. */
  pointer-events: auto;
}

.c55-stage {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.c55-place,
.c55-pan,
.c55-zoom,
.c55-shoji {
  transform-box: view-box;
  transform-origin: 0 0;
}
.c55-place {
  transform: scale(var(--c55-u));
}
.c55-pan {
  transform: translate(-30.9px, 70.05px);
}

.c55-plate,
.c55-shoji__base {
  fill: #06050a;
}
.c55-shoji__lamp {
  opacity: 0;
}
.c55-shoji__kumiko {
  fill: #22170a;
}
.c55-halo {
  opacity: 0;
}
.c55-rim {
  opacity: 0;
}

.c55-logo__stroke {
  fill: none;
  stroke: url(#c55-boot-cover-stroke);
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}
.c55-logo__fill {
  fill: url(#c55-gold-fill);
  clip-path: inset(100% 0 0 0);
}

.c55-cover[data-state] .c55-logo__stroke {
  animation:
    c55-stroke-draw 720ms cubic-bezier(0.3, 0.9, 0.8, 1) both,
    c55-stroke-rest 160ms ease-in both;
  animation-delay: calc(0ms - var(--c55-t)), calc(1200ms - var(--c55-t));
}
.c55-cover[data-state] .c55-logo__fill {
  animation: c55-pour 180ms cubic-bezier(0.4, 0, 0.2, 1) both;
  animation-delay: calc(600ms - var(--c55-t));
}
.c55-cover[data-state] .c55-halo {
  animation: c55-halo 740ms linear both;
  animation-delay: calc(560ms - var(--c55-t));
}
.c55-cover[data-state] .c55-shoji__lamp {
  animation: c55-fade-in 240ms cubic-bezier(0.2, 0.7, 0.3, 1) both;
  animation-delay: calc(740ms - var(--c55-t));
}
.c55-cover[data-state] .c55-shoji {
  animation: c55-shoji-slide 260ms cubic-bezier(0.6, 0, 0.2, 1) both;
  animation-delay: calc(1000ms - var(--c55-t));
}
.c55-cover[data-state] .c55-interior {
  animation: c55-fade-out 160ms cubic-bezier(0.45, 0, 0.55, 1) both;
  animation-delay: calc(1320ms - var(--c55-t));
}
.c55-cover[data-state] .c55-pan {
  animation: c55-pan 520ms cubic-bezier(0.45, 0, 0.55, 1) both;
  animation-delay: calc(1120ms - var(--c55-t));
}
.c55-cover[data-state] .c55-zoom {
  animation: c55-zoom 480ms cubic-bezier(0.5, 0, 0.75, 0) both;
  animation-delay: calc(1200ms - var(--c55-t));
}
.c55-cover[data-state] .c55-rim {
  animation: c55-rim 260ms linear both;
  animation-delay: calc(1320ms - var(--c55-t));
}

.c55-cover-skip {
  position: absolute;
  z-index: 1;
  right: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  min-width: 88px;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid #6b5c3d;
  border-radius: 0;
  background: #08070c;
  color: var(--c55-gold);
  font: 500 13px/1.4 inherit;
  letter-spacing: 0.02em;
  pointer-events: none;
  cursor: pointer;
}
.c55-cover[data-state] .c55-cover-skip {
  pointer-events: auto;
}
.c55-cover-skip:focus-visible {
  outline: 2px solid var(--c55-gold);
  outline-offset: 4px;
}

@keyframes c55-stroke-draw {
  from {
    stroke-dashoffset: 1;
    opacity: 0.14;
  }
  to {
    stroke-dashoffset: 0;
    opacity: 1;
  }
}
@keyframes c55-stroke-rest {
  from {
    stroke-opacity: 1;
  }
  to {
    stroke-opacity: 0;
  }
}
@keyframes c55-pour {
  from {
    clip-path: inset(100% 0 0 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
@keyframes c55-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes c55-fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes c55-halo {
  0% {
    opacity: 0;
  }
  50%,
  75% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes c55-shoji-slide {
  from {
    transform: translate(0, 0);
  }
  to {
    transform: translate(98px, 0);
  }
}
@keyframes c55-pan {
  from {
    transform: translate(-30.9px, 70.05px);
  }
  to {
    transform: translate(var(--c55-fx), var(--c55-fy));
  }
}
@keyframes c55-zoom {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(var(--c55-S));
  }
}
@keyframes c55-rim {
  0% {
    opacity: 0;
  }
  35% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .c55-cover {
    display: none !important;
  }
  .c55-cover * {
    animation: none !important;
  }
}
body.reduce-motion .c55-cover {
  display: none !important;
}
