/* Inline media, never a floating layer over the copy or login. */
body.landing-mode .fc-landing-v2 { width:100%; max-width:none; margin:0; border-radius:0; box-shadow:none; }
.fc-landing-v2 .welcome-intro { display:grid; grid-template-columns:minmax(0,1fr) 120px; align-items:center; gap:20px; margin:22px 0; }
.fc-landing-v2 .welcome-intro h1 { margin:0; font-size:clamp(2rem,3.4vw,3.4rem); line-height:1.12; }
.welcome-character { min-width:0; align-self:center; }
.welcome-character video { display:block; width:100%; height:auto; aspect-ratio:9/16; object-fit:contain; background:transparent; border:0; box-shadow:none; }
.welcome-video-toggle { display:block; margin:4px auto 0; min-height:44px; padding:8px; font-size:.72rem; color:#42534a; text-decoration:underline; text-underline-offset:3px; }
.welcome-video-toggle:focus-visible { outline:2px solid #172116; outline-offset:2px; }
.welcome-character { position:relative; perspective:900px; isolation:isolate; padding:0 12px; }
.welcome-character::before,.welcome-character::after { display:none; }
.welcome-character video,.welcome-cutout { border-radius:0; transform:none; box-shadow:none; }
.welcome-cutout { display:block; width:100%; height:auto; aspect-ratio:9/16; pointer-events:none; filter:none; transform:none; mask-image:linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%); -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%); }
.welcome-character video.has-cutout { position:absolute; width:calc(100% - 24px); opacity:0; pointer-events:none; }
.welcome-character video:not(.has-cutout) { visibility:hidden; }
.welcome-character video:not(.has-cutout) + .welcome-cutout { display:none; }
.welcome-video-toggle { position:relative; margin-top:18px; }
@media(hover:hover) and (pointer:fine) { .welcome-character:hover .welcome-cutout { transform:none; } }
.fc-landing-v2 .fcv2-hero .hero-float-layer { display:none; }
@media(min-width:901px) {
  .fc-landing-v2 .fcv2-hero .fcv2-copy { width:100%; max-width:none; }
  .fc-landing-v2 .fcv2-copy .fcv2-proof { width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:20px; margin-top:28px; }
  .fc-landing-v2 .fcv2-copy .fcv2-proof article { border:0; padding:0; }
}
/* Larger stage, stacked on narrower screens to protect reading space. */
.fc-landing-v2 .welcome-intro { grid-template-columns:minmax(0,1fr) minmax(260px,370px); gap:32px; margin:36px 0 32px; }
@media(max-width:1200px) and (min-width:901px) {
  .fc-landing-v2 .welcome-intro { grid-template-columns:minmax(0,1fr); }
  .welcome-character { width:min(100%,340px); justify-self:center; }
}
@media(max-width:600px) {
  .fc-landing-v2 .welcome-intro { grid-template-columns:minmax(0,1fr); gap:26px; }
  .fc-landing-v2 .welcome-intro h1 { font-size:clamp(2rem,9vw,2.8rem); }
  .welcome-character { width:min(100%,350px); justify-self:center; }
}
@media(prefers-reduced-motion:reduce) { .welcome-character .welcome-cutout,.welcome-character:hover .welcome-cutout { transition:none; transform:none; } }

/* Separate reading, character and account areas; never reserve login space twice. */
.fc-landing-v2 .fcv2-hero {
  display:grid; grid-template-columns:minmax(0,1fr) 350px;
  align-items:center; gap:clamp(28px,3vw,56px);
  padding:56px clamp(28px,4vw,76px); min-height:max(720px,100svh);
}
.fc-landing-v2 .fcv2-hero .fcv2-login {
  position:relative; inset:auto; width:100%; margin:0; align-self:center;
  background:rgba(255,255,255,.94); border:1px solid #fff;
}
.fc-landing-v2 .fcv2-hero .fcv2-copy { min-width:0; }
.fc-landing-v2 .welcome-intro { gap:24px; }
.fc-landing-v2 .welcome-intro h1 { text-wrap:balance; letter-spacing:-.045em; }
.fc-landing-v2 .fcv2-copy > p { max-width:48ch; }
@media(min-width:1201px) {
  .fc-landing-v2 .fcv2-hero .fcv2-copy {
    display:grid; grid-template-columns:minmax(290px,580px) minmax(200px,300px);
    gap:24px 24px; align-items:center;
  }
  .fc-landing-v2 .fcv2-copy .welcome-intro { display:contents; }
  .fc-landing-v2 .fcv2-copy .fcv2-pill { grid-column:1; justify-self:start; font-size:.75rem; }
  .fc-landing-v2 .welcome-intro h1 { grid-column:1; font-size:clamp(2.6rem,3.3vw,3.9rem); margin:0; }
  .fc-landing-v2 .welcome-character { grid-column:2; grid-row:1 / 5; padding:0; width:100%; max-width:300px; justify-self:start; margin:0; }
  .fc-landing-v2 .fcv2-copy > p { grid-column:1; margin:0; font-size:1rem; line-height:1.7; }
  .fc-landing-v2 .fcv2-actions { grid-column:1; margin:0; gap:12px; flex-wrap:wrap; }
  .fc-landing-v2 .fcv2-actions a,.fc-landing-v2 .fcv2-actions button { padding:0 18px; height:52px; }
  .fc-landing-v2 .fcv2-copy .fcv2-proof { grid-column:1 / -1; margin-top:8px; }
}
@media(min-width:901px) and (max-width:1200px) {
  .fc-landing-v2 .welcome-intro { grid-template-columns:1fr; margin:24px 0; }
  .fc-landing-v2 .welcome-intro h1 { max-width:16ch; font-size:2.8rem; }
  .fc-landing-v2 .welcome-character { width:210px; }
}
@media(max-width:900px) {
  .fc-landing-v2 .fcv2-hero { grid-template-columns:minmax(0,1fr); padding:36px 24px; gap:32px; min-height:0; }
  .fc-landing-v2 .fcv2-hero .fcv2-copy { width:100%; max-width:650px; justify-self:center; }
  .fc-landing-v2 .welcome-intro { grid-template-columns:minmax(0,1fr) minmax(160px,240px); gap:20px; margin:26px 0; }
  .fc-landing-v2 .fcv2-hero .fcv2-login { max-width:430px; justify-self:center; }
}
@media(max-width:600px) {
  .fc-landing-v2 .fcv2-hero { padding:32px 24px!important; }
  .fc-landing-v2 .welcome-intro { grid-template-columns:1fr; gap:18px; }
  .fc-landing-v2 .welcome-intro h1 { font-size:clamp(2.2rem,9vw,3rem)!important; margin:0!important; max-width:18ch; }
  .fc-landing-v2 .welcome-character { width:min(64%,210px); justify-self:end; margin-right:8%; }
  .fc-landing-v2 .fcv2-copy > p { margin:0; }
  .fc-landing-v2 .fcv2-hero .fcv2-login { padding:26px 18px; }
}
