/* Blender studio reveal: perspective, soft studio light and an editorial signature. */
/* The scrollbar returns before the fade. Keep this stage viewport-wide so
   the medal and signature cannot shift by half the scrollbar width. */
.fc-loader { position: fixed; inset: 0; right: auto; width: 100vw; z-index: 10000; display: grid; place-items: center; overflow: hidden; isolation: isolate; background: #f8f9f6; color: #18231f; animation: fc-loader-safety 8s step-end both; }
.fc-loader[hidden] { display: none !important; }
html.fc-intro body > :not(.fc-loader):not(script) { visibility: hidden; }
html.fc-intro { overflow: hidden; overflow-anchor: none; }
.fc-loader::before { content: ''; position: absolute; inset: -20%; z-index: -1; background: radial-gradient(ellipse at 64% 38%, #dce7d5b0 0, #eff2e969 23%, transparent 52%), radial-gradient(ellipse at 28% 70%, #d9d4b04d, transparent 48%); opacity: .6; }
.fc-loader::after { content: ''; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 12vw #ffffff80; }
.fc-loader__center { display: grid; justify-items: center; width: 100%; transform: translateY(-2vh); mix-blend-mode: multiply; pointer-events: none; }
.fc-loader__medal { position: relative; width: min(92vw, 68svh, 680px); aspect-ratio: 1; animation: fc-arrive 480ms cubic-bezier(.2,.7,.2,1) both; }
.fc-loader__medal video, .fc-loader__medal img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.fc-loader__medal video { opacity: 0; }
.fc-loader__frames { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; }
.fc-loader.is-playing .fc-loader__medal video { opacity: 1; }
.fc-loader.is-playing .fc-loader__medal img { visibility: hidden; }
.fc-loader__medal::after { content: ''; position: absolute; width: 43%; height: 3%; left: 28.5%; bottom: 7%; border-radius: 50%; background: #233d2240; filter: blur(15px); opacity: .3; transform: scaleX(1.3); }
.fc-loader__signature { position: relative; text-align: center; margin-top: -24px; opacity: 0; transform: translateY(16px);  }
.fc-loader__name { margin: 0; font: 550 clamp(30px, 4vw, 50px)/1.1 'Instrument Sans Variable', Arial, sans-serif; letter-spacing: -.045em; }
.fc-loader__name span { color: #326b49; }
.fc-loader__caption { margin: 0 0 12px; font: 500 11px/1.5 Arial, sans-serif; letter-spacing: .24em; text-transform: uppercase; color: #677564; }
.fc-loader.is-playing .fc-loader__signature { animation: fc-signature 650ms 650ms cubic-bezier(.2,.7,.2,1) both; }
.fc-loader.is-playing::before { animation: fc-studio-light 1.778s ease-out both; }
.fc-loader.is-playing .fc-loader__medal::after { animation: fc-shadow 1.778s linear both; }
.fc-loader.is-leaving { opacity: 0; transition: opacity 360ms cubic-bezier(.3,0,.4,1); }

@keyframes fc-signature { to { opacity: 1; transform: translateY(0);  } }
@keyframes fc-arrive { from { opacity: .002; transform: translateY(14px) scale(1.025); filter: blur(5px); } to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); } }
@keyframes fc-studio-light { from { opacity: .3; transform: translateX(-6%); } to { opacity: .8; transform: translateX(0); } }
@keyframes fc-shadow {
  0%, 52% { bottom: 7%; opacity: .16; filter: blur(15px); transform: scaleX(1.3); }
  76% { bottom: 16%; opacity: .3; filter: blur(9px); transform: scaleX(.76); }
  88% { bottom: 16%; opacity: .23; filter: blur(11px); transform: scaleX(.86); }
  100% { bottom: 16%; opacity: .25; filter: blur(10px); transform: scaleX(.82); }
}
/* Discrete hit testing must switch only at the deadline, never mid-animation. */
@keyframes fc-loader-safety { from { visibility: visible; pointer-events: auto; } to { visibility: hidden; pointer-events: none; } }
@media (max-height: 600px) { .fc-loader__medal { width: min(70vw, 66svh); } .fc-loader__name { font-size: 28px; } .fc-loader__signature { margin-top: -12px; } }
@media (prefers-reduced-motion: reduce) { .fc-loader { display: none !important; } }

