/* Vecreal marketing-site system guardrails.
   This file is deliberately visually inert: it names the shared vocabulary and
   prevents synthetic font faces without remapping any approved page values. */
:root{
  --site-type-display:clamp(42px,5.6vw,76px);
  --site-type-section:clamp(30px,3.2vw,46px);
  --site-type-body:16px;
  --site-type-ui:14px;
  --site-type-caption:13px;
  --site-type-micro:12px;
  --site-motion-fast:120ms;
  --site-motion-medium:200ms;
  --site-motion-slow:340ms;
  --site-ease:cubic-bezier(.2,.8,.2,1);
}

html,button,input,textarea,select{font-synthesis:none}
html{-moz-osx-font-smoothing:grayscale}
.brandblock{text-decoration:none;color:inherit}

/* Progressive motion contract: page scripts opt the root into motion only after
   every observer and final-state fallback has been installed. Until then,
   content is fully visible—even if JavaScript stops part-way through boot. */
html:not(.motion-ready) .mo,
html:not(.motion-ready) .mo-st>*,
html:not(.motion-ready) .fseq,
html:not(.motion-ready) .fseq *,
html:not(.motion-ready) .ocdraw *,
html:not(.motion-ready) [class~="motion-ready"],
html:not(.motion-ready) [class~="motion-ready"] *{
  opacity:1!important;transform:none!important;clip-path:none!important;
  stroke-dashoffset:0!important;animation:none!important;transition:none!important
}

/* Form controls remain at 16px on touch widths so iOS does not zoom on focus. */
@media(max-width:640px){input,textarea,select{font-size:16px}}
